var | let | const | |
---|---|---|---|
规范 | ES5规范 | ES6规范 | ES6规范 |
处理机制 | 有预处理机制,变量提升 | 没有预处理机制,不存在变量提升 | - |
作用域 | 全局作用域函数作用域 | 块级作用域 | - |
- | 存在暂时性死域 | 存在暂时性死域 | |
- | - | 只读变量(声明必须初始化、不可重复赋值) |
封闭作用域: ES6 明确规定,代码块内如果存在 let 或者const,代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。
var | let | const | |
---|---|---|---|
规范 | ES5规范 | ES6规范 | ES6规范 |
处理机制 | 有预处理机制,变量提升 | 没有预处理机制,不存在变量提升 | - |
作用域 | 全局作用域函数作用域 | 块级作用域 | - |
- | 存在暂时性死域 | 存在暂时性死域 | |
- | - | 只读变量(声明必须初始化、不可重复赋值) |
封闭作用域: ES6 明确规定,代码块内如果存在 let 或者const,代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。