Let Const
Let 和 const 声明会形成块级作用域。
var "缺陷"
- 可以重复声明同名变量(闭包缓存)
- 无法限制修改
- 没有块级作用域(
{},if () {}, for () {}),作用域只在函数中有效Function。 - 变量提升
- 声明的变量会挂载在 window 上
Let
Let 暂存死区
Let 栈内存
Const
Const 一旦声明必须赋值,不能用 null 占位,声明后不能再修改,如果 声明的是复合类型数据,可以修改属性
Const 声明复合类型的数据({}、[]),变量指向内存地址。Const 栈内存储存的是堆内存的地址,堆内存储存了实际的数据