console.log(i); // ReferenceError: i is not defined
for迴圈特殊用法
1 2 3 4 5 6 7 8 9 10
for (let i = 0; i < 3; i++) { let i = 'abc'; console.log(i); } // abc // abc // abc
上述例子印出三次abc,表示(let i = 0) 和 let i = 'abc'; 兩者屬於不同區塊
let宣告必須在使用變數前宣告,否則報錯
1 2 3 4 5 6 7
// var 的情况 console.log(foo); // 輸出undefined var foo = 2;
// let 的情况 console.log(bar); // 報錯ReferenceError let bar = 2;
let語法宣告在區塊內的變數,就會綁定在區塊內,不受外部影響
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
var tmp = 123;
if (true) { tmp = 'abc'; // ReferenceError let tmp; } ----------------------------------- typeof x; // ReferenceError let x; ----------------------------------- // no error var x = x;
// error let x = x; // ReferenceError: x is not defined