1.let只在代码块中无效

2.var存在变量晋升,即变量未声明也能够应用,输入undefined
let/const只能在变量申明之后应用
let/const存在暂时性死区,即在代码块中只有变量未声明在应用时都会报错,不论代码块内部有没有申明

3.let在块级作用域中申明在内部不被更改,每一个块级作用域中的let变量都是独立的
4.const申明的变量为只读变量,不能够批改,

    const指向的是内存地址中所保留的数据,    根底类型的数据(number,string,boolean)数据值即保留的地址等同于常量,    对于合乎类型的数据(function,array数组)变量指向内存,保留的只是一个指向理论数据的指针,const只能保障指针(即内存地址)的不变,但不能不保障数据结构是否不变,就是你能够扭转函数外面的属性,然而不能把对象从新申明指向另一个对象    ![image.png](/img/bVbLF1a)

5.ES5申明变量的形式:var、function
ES6申明变量的形式:var、function、let、const、import、class