1.let只在代码块中有效
2.var存在变量提升,即变量未声明也可以使用,输出undefined
let/const只能在变量声明之后使用
let/const存在暂时性死区,即在代码块中只要变量未声明在使用时都会报错,不管代码块外部有没有声明
3.let在块级作用域中声明在外部不被更改,每一个块级作用域中的let变量都是独立的
4.const声明的变量为只读变量,不可以修改,
const指向的是内存地址中所保存的数据,
基础类型的数据(number,string,boolean)数据值即保存的地址等同于常量,
对于符合类型的数据(function,array数组)变量指向内存,保存的只是一个指向实际数据的指针,const只能保证指针(即内存地址)的不变,但不能不保证数据结构是否不变,就是你可以改变函数里面的属性,但是不能把对象重新声明指向另一个对象

5.ES5声明变量的方式:var、function
ES6声明变量的方式:var、function、let、const、import、class
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。