var、let、const声明 - liuxiaofei2010S/special-column GitHub Wiki
综述:
目前javascript中声明变量的方法有6种:var、 let、 const、 function、 import、 class
var
-
存在变量提升
-
允许重复声明,覆盖原先声明
-
不会劫持当前作用域
let
-
不存在变量提升,存在暂时性死区
-
不允许重复声明
-
劫持当前作用域
-
声明的全局变量不相关顶层对象的属性
const
-
与上述var相同
-
声明的变量的指向是不可更改的,即简单数据类型变量指向的是保存的值,而对象类型变量指向的是内存地址,因此内存地址不变,但是对应的对象可以更改。除非使用Object.freeze()方法