一、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開始,全局變量將逐步與全局對象的屬性脫鉤。兼容性