let、const、var的區別
阿新 • • 發佈:2021-12-05
1、var是ES5提出的,let和const是ES6提出的。
2、const宣告的是常量,必須賦值
1)一旦宣告必須賦值,不能使用null佔位。
2)聲明後不能再修改
3)如果宣告的是複合型別資料,可以修改其屬性
3、 let和var宣告的是變數,宣告之後可以更改,宣告時可以不賦值
4、 var允許重複宣告變數,後一個變數會覆蓋前一個變數。let和const在同一作用域不允許重複宣告變數,會報錯。
5、 var宣告的變數存在變數提升(將變數提升到當前作用域的頂部)。即變數可以在宣告之前呼叫,值為undefined。
let和const不存在變數提升。即它們所宣告的變數一定要在聲明後使用,否則報ReferenceError錯。
6、 var不存在塊級作用域。let和const存在塊級作用域。
ES5中作用域有:全域性作用域、函式作用域。沒有塊作用域的概念。
ES6(簡稱ES6)中新增了塊級作用域。塊作用域由 { } 包括,if語句和for語句裡面的{ }也屬於塊作用域。