es6——之初體驗
阿新 • • 發佈:2018-01-12
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——之初體驗