vanlee

Results 62 issues of vanlee

1、语言层面:web编程语言 高级 动态 解释性语言 2、语法层面:区分大小写、变量松散 3、类型:变量无类型 - 脚本语言 - 解释 - 10 天 - 服务器 桌面浏览器 手机浏览器 原生移动应用 - Web 编程语言 - 高级、动态、解释性语言 - 面向对象、函数式编程 - 变量无类型 - 与`Java` 是不同的语言

--- title: 什么是暂时性死区 --- let在JavaScript运行时中也会被提升,但由于“暂时性死区”(temporal dead zone)的缘故。在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”.**temporal dead zone,简称 TDZ** 暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。

--- title: 严格模式的约束,现代模式 --- 1、es5新增的概念 不规范会处理、不安全会抛错 `use strict`当它处于脚本文件的顶部时,则整个脚本文件都将以“现代”模式进行工作。一旦进入严格模式没有回头路了 ```js (function() { "use strict"; // ...你的代码... })(); ``` 没有类似于 "no use strict" 这样的指令可以使程序返回默认模式。 一旦进入了严格模式,就没有回头路了。 1. 函数不能以 eval 或 arguments 作为名称; 2....

## 一般有几种`DOCTYPE`文档类型 `IE5.5` 发明了文档模式的概念 `doctype` 最初:混杂模式 + 标准模式 后来:+准标准模式 | 混杂模式 | 标准模式 | 准标准模式 | | ----------- | -------------------------------------------- | --------------------- | | 省略doctype | | Transitional Frameset |...

## `XHTML(XML)`和 `HTML5` 有什么区别 - `XHTML` 可扩展超文本标记语言,将html 作为XML 重新包装的结果 | HTML | HTML4 | XHTML | HTML5 | | --------------------- | ---------------- | -------------------------------- | ------------------------ | | HTML 指超文本标签语言...

两种方式导致脚本不同的方式执行,布尔值属性 是没有值的 只对`src` 的标签才起作用 可以在下载脚本的同时 解析和渲染文档 - defer 会让浏览器把脚本推迟到文档完全加载解析之后(可以操作位文档) - defer按照文档中出现的顺序 - async 会让浏览器尽早的运行脚本 脚本下载期间 仍热庵不会阻塞文档 - async 运行的顺序是无法预测的(不能保证出现的次数执行) - 存在两个属性的情况下 那么 async 起作用 | async | defer | |...

--- title: var、let和const区别的实现原理是? --- # var、let 和 const 区别的实现原理是什么 ## var 操作符(关键字) 在使用var声明变量时,变量会被自动添加到最接近的上下文。在函数中,最接近的上下文就是函数的局部上下文。在with语句中,最接近的上下文也是函数上下文。如果变量未经声明就被初始化了,那么它就会自动被添加到全局上下文 ## 使用let的块级作用域声明 但它的作用域是块级的,这也是JavaScript中的新概念。块级作用域由最近的一对包含花括号{}界定。换句话说,if块、while块、function块,甚至连单独的块也是let声明变量的作用域。let与var的另一个不同之处是在同一作用域内不能声明两次。重复的var声明会被忽略,而重复的let声明会抛出SyntaxError。 当`let`的值修改之后,之前的值就删除了 ## 使用const的常量声明 除了let,ES6同时还增加了const关键字。使用const声明的变量必须同时初始化为某个值。一经声明,在其生命周期的任何时候都不能再重新赋予新值。 **const声明只应用到顶级原语或者对象。换句话说,赋值为对象的const变量不能再被重新赋值为其他引用值,但对象的键则不受限制。** 其本质是:并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个对象声明为常量必须非常小心 ```js const o = { name:'yayxs', age:18 }...

--- title: 谈谈作用域与作用域链的理解,如何理解? --- 面试的时候,面试官会问`JS中的作用域是什么` 要知道`作用域是什么` 我们需要先了解几个简单的概念 ## 编译原理 ![编译阶段](https://cdn.jsdelivr.net/gh/yayxs/Pics/dontKownJS/%E7%BC%96%E8%AF%91%E9%98%B6%E6%AE%B5.svg) 编译原理 执行的过程一般会有三个步骤 - var name 编译时处理 - name = yayxs 运行时处理 也就是 JS 是在一边进行编译 一边进行执行(所有的代码片段在执行之前会被编译 同时编译 的过程十分短暂) ## 变量查找 其次的话是`引擎`...