var、let、const宣告變數的區別

Saikikoko發表於2018-12-24

var宣告變數的特點

說是特點,不如說是缺點

  1. var在全域性宣告的變數會自動掛載到頂層物件window

var、let、const宣告變數的區別

  1. var宣告變數,存在變數提升的現象
console.log(a);//undefined
var a = 1;
console.log(a);//1
複製程式碼
// 以上程式碼可以這樣理解
var a;
console.log(a);
a = 1;
console.log(1);
複製程式碼

var會先將宣告變數的操作放在作用域的頂部,之後再執行賦值等操作 因為程式碼存在變數提升,變數可以先使用再宣告,造成程式碼可讀性非常糟糕!

  1. var可以重複宣告變數

var、let、const宣告變數的區別
該特性,在團隊協作開發時,很可能造成程式碼汙染。後一個人將前一個人宣告的變數重新賦予新的含義。這可能會造成不可預計的後果

let宣告變數

ES6的新規範,let則完美解決了var宣告變數缺點

  1. let宣告的變數不會掛載在window

var、let、const宣告變數的區別

  1. let宣告變數,存在暫時性死區 let宣告的變數在宣告之前使用會報錯
console.log(a);
let a = 1;//Uncaught ReferenceError: a is not defined
複製程式碼
  1. let不可以重複宣告變數
let a = 1;
let a = 2;//Uncaught SyntaxError: Identifier 'a' has already been declared
複製程式碼

const宣告變數

  1. let宣告變數的特點,const全都有
  2. const宣告的是一個常量,不可以被重新賦值
const a = 1;
a = 2;//Assignment to constant variable.
複製程式碼
  1. const宣告的常量,必須賦初始值

相關文章