let const 总结
let const 不会污染全局变量 不会声明到window上
let a=1;console.log(window.a)//undefind复制代码
let const 不存在变量提升 (他所声明的变量一定要在声明后使用,否则报错)
a=1;let a=2;//报错复制代码
let const 不允许在用一个作用域中重复声明同一个变量
let b=1;let b=2;//报错复制代码
块级作用域 ES5中没有块级作用域,只有全局作用域和函数作用域
{ let a =1 console.log(a)} /* 在两个作用域中声明的 所以不会报错 */{ let a=2; console.log(a)}复制代码
let 定义的变量值 是可以被改变的
let a =1; a=2 ;console.log(a)复制代码
const声明的一个常量是 值是不可以改变的(地址不变即可),但是如果存储的是一个地址 指向对象,可以改变对象里的内容
const num=1;num=2;//报错 不可以修改console.log(num)const obj ={a:1}//obj=[];//报错obj.a=2console.log(obj)复制代码
如果真的想将对象冻结,应该使用 Object.freeze方法
const foo = Object.freeze({});//常规模式下,下面一行不起作用//严格模式下,改行会报错foo.prop = 123; 复制代码
未完待续