ECMAScript 6 學習之——let變量

不存在變量提升

var命令會發生“變量提升”現象,即變量可以在聲明之前使用,值爲undefined。這種現象多多少少是有些奇怪的,按照一般的邏輯,變量應該在聲明語句之後纔可以使用。

爲了糾正這種現象,let命令改變了語法行爲,它所聲明的變量一定要在聲明後使用,否則報錯。

// var 的情況
console.log(foo); // 輸出undefined
var foo = 2;

// let 的情況
console.log(bar); // 報錯ReferenceError
let bar = 2;

上面代碼中,變量foovar命令聲明,會發生變量提升,即腳本開始運行時,變量foo已經存在了,但是沒有值,所以會輸出undefined。變量barlet命令聲明,不會發生變量提升。這表示在聲明它之前,變量bar是不存在的,這時如果用到它,就會拋出一個錯誤。

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