一、let
1、通过let声明变量不会变量声明提升
let a = 10;
console.log( a )
会报错
2、 let a = 10;
let a = 10;
会报错,(a 已被定义)
3、 let a = 10;
console.log( window.a ) 》 undefind
let 声明的变量不会挂载到全局
4、let 加强对作用域的控制 》 let { } => 块级作用域
5、临时死区
闭包
二、const
//常量声明
const PI = 20;
//存储常量的空间里的值不能发生改变
const PI = 20;
PI = 20;//报错
不报错 (空间里的值不变,引用值可以变) 如果定义空间里的值是20,则不能改变
空间 引用值
const 也可以与 { } 连用产生块级作用域
也会产生临时死区