一: 變數提升與否
var:
console.log(a); // undefined var a = `abc`; // 這段程式碼實際執行順序是: var a; //變數宣告提升至當前作用域頂部 console.log(a); a = `abc`;
let:
console.log(a); // 報錯: a is not defined let a = `abc`; // 這裡, 用let宣告變數, 變數宣告不會提升, 完全按照文件流的執行順序走
二:作用域問題
var:
for (var i = 0; i<10; i++) { // code.. } console.log(i); // 輸出 10
let:
for (let i = 0; i<10; i++) { // code.. } console.log(i); // 報錯: i is not defined
// let 作用於 程式碼塊 {}
獲取更過 點選這裡