1. 程式人生 > >ES6標準入門(第三版)學習筆記(1)

ES6標準入門(第三版)學習筆記(1)

  ES6宣告變數的六種方法

  ES5只有兩種 var,function命令

  ES6新增了let,const,class,import命令

驗證var與let用法上的不同

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

var宣告的i是全域性變數,結果是10

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

let在for迴圈的作用域內是有效的

a[4]();的結果是4

 

ES6新增了塊級作用域

外層的程式碼塊不受內部程式碼塊的影響

function f1() {
  let n = 5;
  if (true) {
    let n = 10;
  }
  console.log(n);
}
f1();

f1();的結果為5

function f1() {
  var n = 5;
  if (true) {
    var n = 10;
  }
  console.log(n);
}
f1();

使用var定義n,結果就是10

ES6的塊級作用域內宣告的函式處理規則

  • 允許塊級作用域內宣告函式。
  • 函式宣告類似var,會提升到全域性作用域或者函式作用域的頭部。
  • 函式宣告還會提升到所在的會計作用域的頭部。