var宣告變數的特點
說是特點,不如說是缺點
var
在全域性宣告的變數會自動掛載到頂層物件window
上
var
宣告變數,存在變數提升的現象
console.log(a);//undefined
var a = 1;
console.log(a);//1
複製程式碼
// 以上程式碼可以這樣理解
var a;
console.log(a);
a = 1;
console.log(1);
複製程式碼
var
會先將宣告變數的操作放在作用域的頂部,之後再執行賦值等操作
因為程式碼存在變數提升,變數可以先使用再宣告,造成程式碼可讀性非常糟糕!
var
可以重複宣告變數
let宣告變數
ES6的新規範,let
則完美解決了var
宣告變數缺點
let
宣告的變數不會掛載在window
上
let
宣告變數,存在暫時性死區let
宣告的變數在宣告之前使用會報錯
console.log(a);
let a = 1;//Uncaught ReferenceError: a is not defined
複製程式碼
let
不可以重複宣告變數
let a = 1;
let a = 2;//Uncaught SyntaxError: Identifier 'a' has already been declared
複製程式碼
const宣告變數
let
宣告變數的特點,const
全都有const
宣告的是一個常量,不可以被重新賦值
const a = 1;
a = 2;//Assignment to constant variable.
複製程式碼
const
宣告的常量,必須賦初始值