ES6--let及const

1.ES6中新增加let命令來聲明變量,類似於var,但是let聲明的變量只在let命令所在代碼塊中有效。例:
for(let a = 0;a<4;a++){
  console.log(a);//0,1,2,3
}
console.log(a);//a is not defined

2.我們在找工作面試的時候,不乏會出現以下題目:

 1). 在調用a[3]時,我們希望輸出的結果是3,結果輸出的是10;是因爲i爲全局變量,每一次循環變量 i 都會改變,然而在console.log(i)中的i也是指向全局變量,所以導致輸出的值是最後一次循環所得的10;

var a = [];
for (var i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[3](); // 10
2).上邊的代碼改爲用 let 聲明變量時,會避免該問題:
var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[3](); // 3
3. 避免聲明提前的問題,即變量可以在聲明之前使用,值爲undefined,用let聲明變量則不會出錯。例:
console.log(foo); // 輸出undefined
var foo = 2;

// let 的情況
console.log(bar); // 報錯ReferenceError
let bar = 2;
4. 不允許重複聲明
let a = 1;
let a = 10;//報錯
5.const聲明一個只讀的常量。一旦聲明,常量的值就不能改變。
const PI = 3.1415;
PI // 3.1415

PI = 3;
// TypeError: Assignment to constant variable.













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章