关于var let const
声明提升:使用var声明的变量会自动提升到作用域顶部,但是值不会提升
let声明的作用域是块作用域,var是函数作用域,let不允许在同一作用域多次声明,var却可以多次声明。
这也是let的优点,可以避免变量被多次声明 覆盖。
**let和var的另一个区别,就是let声明的变量不会在作用域中提升**
**const:用const声明变量的同时必须同时初始化变量,并且不能修改const声明的变量,不能重新赋值,也不允许重复声明同一个变量,const的作用域也是块 const同样不存在变量提升**
const和let的出现让var不再那么重要,使得变量有明确的作用域,声明位置,以及不会轻易被改变的值
如果声明的是复合类型数据,可以修改其属性,比如数组,对象,不能修改数组对象的值,可以修改其索引的值和对象的某个属性值
优先使用const,其次let。使用const,可以提前发现不合法的声明和赋值,然后在不合理的地方修改为let