关于const
const声明只读变量,不支持修改,所以在声明时就必须初始化。。
const与let非常相似,const是用来声明常量,而let是用来声明变量
const与let共同点
1、块级作用域
2、不支持变量提升
3、存在暂时性死区
4、不可重复声明(即使之前声明指令不一样,如var,let也会报错)
const保证内存地址不变,但是地址里面的内容是可以变的
const foo = {}; // 为 foo 添加一个属性,可以成功 foo.prop = 123; foo.prop // 123 // 将 foo 指向另一个对象,就会报错 foo = {}; // TypeError: "foo" is read-only
顶级对象属性
在浏览器中顶级对象指window,Node中指global
在以往的声明指令中如var,function顶级对象的属性就是全局对象的属性,例如
window.a=1; console.log(a)//1
但let,const,class把两者区分开了,顶级对象是顶级对象,全局是全局,两者是不同的概念