var, let 与 const
暂时性死区#
如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。
1 | let a = 1; |
变量提升#
变量可以在var声明之前使用,值为undefined。
1 | console.log(a); // undefined |
1 | console.log(a); // Cannot access 'a' before initialization |
重复声明#
-
var可重复声明 -
let不可重复声明
1 | var a = 1; |
1 | let a = 1; |
作用域#
1 | { |
1 | { |
全局对象#
node环境中
1 | x = "哈哈哈哈"; |
brower环境中
1 | x = "哈哈哈哈"; |
总结let的属性特征
-
不属于全局对象
window/global -
不允许重复声明
-
不存在变量提升
-
存在暂时性死区
-
块级作用域
const#
-
const声明的变量必须初始化 -
且不能修改值, 只读(对于对象类型的数据, 可修改其属性, 但不能修改其地址, 即整体赋值)
-
作用域与
let基本相同
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 J's Blog!
评论
WalineLivere







