Scope、ES6 & let

前面章節所提到變數環境、詞彙環境定義了 ‘範圍’,’範圍’是變數可以被取用的區域

下一版本的 JavaScript 稱作 ECMAScript 6、ECMAScript 2015 或 ES6,這個版本提供了新的變數宣告方式 let

let

let 並非完全取代 varvar 還是存在,但 let 讓 JavaScript 引擎使用一種叫做區塊範圍 (block scoping) 的東西,所謂區塊的定義包括 if & for 的 大括號 {},所以如果在執行 for loop 時,每次變數在記憶體都是指向不同的位置

1
2
3
4
5
6
if (a > b) {
let c = true;
}
for () {
let d = true;
}