var ,let const 区别
1.块级作用域
let,const有自己的{}作用域,var没有,var声明的变量会作为window的属性
2.变量提升
var声明的变量存在变量提升
3.声明同名变量
var可再次声明同名变量
4. 暂存死区
var a = 100;
if(1){
a = 10; //在当前块作用域中存在a使用let/const声明的情况下,给a赋值10时,只会在当前作用域找变量a,
// 而这时,还未到声明时候,所以控制台Error:a is not defined
let a = 1;
}
5. const
一旦声明必须赋值,不能使用null占位。
声明后不能再修改。
如果声明的是引用类型数据,可以修改其属性。