js中 let 與 var 的區別

蘿蔔粥發表於2018-11-23

 

 

一: 變數提升與否

  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 作用於 程式碼塊 {}

 

 

 

 

 

 

獲取更過 點選這裡

 

相關文章