1. 程式人生 > >ES6系列一 let const

ES6系列一 let const

聲明變量 系列 ++ tor 代碼塊 spa com 屬性 否則

一丶let

1.使用let聲明一個變量,會生成一個獨立的作用域,比var的作用域更為嚴謹,比如for循環

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

2.暫時性死區:在代碼塊內,使用let命令聲明變量之前,該變量都是不可用的。這在語法上,稱為“暫時性死區”(temporal dead zone,簡稱 TDZ)。

3.不能重復性聲明: 同一作用域下,var重復聲明不會報錯,let和const重復聲明會報錯。

二丶const

1.const聲明一個只讀變量,不可更改值,否則則會報錯,但對象和數組可以更改內存指針。比如

const foo = {};

// 為 foo 添加一個屬性,可以成功
foo.prop = 123;
foo.prop // 123


const a = [];
a.push(‘Hello‘); // 可執行
a.length = 0;    // 可執行
a = [‘Dave‘];    // 報錯

ES6系列一 let const