ES6學習筆記-變數的宣告
阿新 • • 發佈:2018-12-12
這段時間打算認真學習一下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;
待續