1. 程式人生 > 其它 >let、const、var的區別

let、const、var的區別

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語句裡面的{ }也屬於塊作用域。