一,var定義的變數,作用域是整個封閉函式,是全域的;let定義的變數,作用域是在塊級或者字塊中;
二,變數提升:不論通過var宣告的變數處於當前作用於的第幾行,都會提升到作用域的最頂部。
而let宣告的變數不會在頂部初始化,凡是在let宣告之前使用該變數都會報錯(引用錯誤ReferenceError);
複製程式碼
三,只要塊級作用域記憶體在let,它所宣告的變數就會繫結在這個區域;
四,let不允許在相同作用域內重複宣告(報錯同時使用var和let,兩個let)。
const用來專門宣告一個常量,它跟let一樣作用於塊級作用域,沒有變數提升,重複宣告會報錯,不同的是const宣告的常量不可改變,宣告時必須初始化(賦值)