1. 程式人生 > >1. let與const

1. let與const

1.ES6 新增了let命令,用來宣告變數。它的用法類似於var,但是所宣告的變數,只在let命令所在的程式碼塊內有效

var a = [];

for (var i = 0;i<10;i++) {

  a[i] = (function(i){

    return function(){

      console.log(i);

    }

  })(i)

}

2.不存在變數提升

3.暫時性死區

4.不允許重複宣告

5.塊級作用域

ES5執行:

ES6執行:

6.const常量

const實際上保證的,並不是變數的值不得改動,而是變數指向的那個記憶體地址所儲存的資料不得改動。對於簡單型別的資料(數值、字串、布林值),值就儲存在變數指向的那個記憶體地址,因此等同於常量。但對於複合型別的資料(主要是物件和陣列),變數指向的記憶體地址,儲存的只是一個指向實際資料的指標,const

只能保證這個指標是固定的(即總是指向另一個固定的地址),至於它指向的資料結構是不是可變的,就完全不能控制了。因此,將一個物件宣告為常量必須非常小心。