一、let与const之间的区别:函数
1)let可修改,const是常量不可修改;code
二、let,const与var之间的区别:对象
1)let,const不存在变量提高;因此不用担忧预解释和做用域的问题;作用域
2)在同一个块级做用域下不容许重复声明同一个变量;io
3)ES6 容许在块级做用域内声明函数,function
函数声明相似于var
,即会提高到全局做用域或函数做用域的头部,class
同时,函数声明还会提高到所在的块级做用域的头部;变量
4)ES6为了保持兼容性,var
命令和function
命令声明的全局变量,依旧是全局对象的属性;另外一方面规定,let
命令、const
命令、class
命令声明的全局变量,不属于全局对象的属性。也就是说,从ES6开始,全局变量将逐步与全局对象的属性脱钩。兼容性