var和let關鍵字的比較

var和let關鍵字的比較

說明

let是es6新增的關鍵字

有效區域

let 是在代碼塊內有效,var 是在全局範圍內有效:

{  
let a = 0;  
var b = 1; 
} 
a  // 此時報錯ReferenceError: a is not defined 
b  // 此時輸出1

重複聲明

let 只能聲明一次 var 可以聲明多次

let a = 1; 
let a = 2; 
var b = 3; 
var b = 4; 
a  // 此時報錯Identifier 'a' has already been declared 
b  // 此時輸出4

let可以在循環中使用,每次循環都是一個新的變量

var是全局聲明的,在循環中可以一直使用同一個變量

變量提升

console.log(a);  //報錯ReferenceError: a is not defined 
let a = "apple";  
console.log(b);  //undefined var 
b = "banana";

變量 b 用 var 聲明存在變量提升,所以當腳本開始運行的時候,b 已經存在了,但是還沒有賦值,所以會輸出 undefined。

變量 a 用 let 聲明不存在變量提升,在聲明變量 a 之前,a 不存在,所以會報錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章