1. 程式人生 > >ES6學習筆記-變數的宣告

ES6學習筆記-變數的宣告

這段時間打算認真學習一下ES6,因為ES6是下一個版本的JavaScript,我們公司用的框架angular也需要es6,所以我找了阮一峰老師的es6教程進行學習。

let關鍵字

首先是宣告變數的關鍵字又添加了let,用這個命令所宣告的變數只會在所在的程式碼塊有效。

首先看用var宣告的變數,由於迴圈結束後i依然沒有被銷燬,所以我們最後得到的結果是最後一次迴圈i的值。

var a = [];
for (var i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 10

我們再來看let定義的變數,就很不一樣了

var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 6

不存在變數提升

用var定義的變數存在變數提升現象,即變數在宣告前就可以使用,值為undefined,你就尋思尋思這個是不是js的缺陷吧,但是let解決了它。

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

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

待續