1. 程式人生 > >es6——之初體驗

es6——之初體驗

span fine reference 聲明 賦值 true const operator spa

前言:ECMAScript和JavaScript是什麽關系?

  JavaScript由ECMAScript,BOM,DOM組成,前者是後者的規範,後者是前者的實現

1.let和const命令

 1)let用於聲明變量,聲明的變量是塊級作用域


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)var聲明的變量有變量提升的現象,let聲明的變量沒有

console.log(foo); //輸出undifined
var foo = 2;

console.log(bar); //報錯RefrenceError
let bar = 2;

3)暫時性死區

var tmp = 123;
if(true){
  tmp = ‘123‘; //referenceError
  let tmp;
}

4)不允許重復聲明

5)允許在塊級作用域中聲明函數,聲明的行為類似let,在塊級作用域之外不可應用

6)do表達式,使得塊級作用域可以有返回值

let x = do {
   let t = f();
   t 
= t * t + 1; }
//x的返回值為(t*t+1)

const命令

const聲明一個常量,一旦聲明,常量的值不能改變

const實際上保證的不是變量的值不能改動,而是變量指向的那個內存地址不得改動

2.變量的解構賦值

1)數組的解構賦值

es6——之初體驗