一、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;//报错
![变量新声明之let、const 变量新声明之let、const](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTUxMjk2Mi8yMDE5MDQvMTUxMjk2Mi0yMDE5MDQwNTIzMTYzMzcyOC02MzQ5MjcxNDYucG5n.png?w=700&webp=1)
![变量新声明之let、const 变量新声明之let、const](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTUxMjk2Mi8yMDE5MDQvMTUxMjk2Mi0yMDE5MDQwNTIzMTY0Mjg1My0xNzIyODU5MjMyLnBuZw%3D%3D.png?w=700&webp=1)
空间 引用值
const 也可以与 { } 连用产生块级作用域
也会产生临时死区