《ECMAScript6入門》-let和const命令

1、let不存在變量提升
2、暫時性死區

只要塊級作用域內存在let命令,它所聲明的變量就“綁定”(binding)這個區域,不再受外部的影響。

3、不允許重複聲明
4、塊級作用域

ES5 只有全局作用域和函數作用域,沒有塊級作用域
問題:
(1)內層變量可能會覆蓋外層變量
(2)用來計數的循環變量泄露爲全局變量

塊級作用域的出現,實際上使得獲得廣泛應用的匿名立即執行函數表達式(匿名 IIFE)不再必要了。

// IIFE 寫法
(function () {
  var tmp = ...;
  ...
}());

// 塊級作用域寫法
{
  let tmp = ...;
  ...
}

ES6 的塊級作用域必須有大括號,如果沒有大括號,JavaScript 引擎就認爲不存在塊級作用域。

5、const
const實際上保證的並不是變量的值不得改動,而是變量指向的哪個內存地址所報錯的數據不得改動。對於簡單類型的數據,等同於常量。但對於複合型數據,const只能保證指針是固定的,至於它指向的數據結構是不是可變,就完全不能控制了。

6、ES6六種聲明變量的方法
var、function、let、const、import、class

7、

var命令和function命令聲明的全局變量,依舊是頂層對象的屬性;另一方面規定,let命令、const命令、class命令聲明的全局變量,不屬於頂層對象的屬性。

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