阮一峰 ES2015
給 JavaScript 初心者的 ES2015 實戰(zhàn)
ECMAScript 6(以下簡稱ES6)是JavaScript語言的下一代標準,已經(jīng)在2015年6月正式發(fā)布了。它的目標,是使得JavaScript語言可以用來編寫復(fù)雜的大型應(yīng)用程序,成為企業(yè)級開發(fā)語言。
標準的制定者有計劃,以后每年發(fā)布一次標準,使用年份作為標準的版本。因為當前版本的ES6是在2015年發(fā)布的,所以又稱ECMAScript 2015。也就是說,ES6就是ES2015,下一年應(yīng)該會發(fā)布小幅修訂的ES2016。
ES6所帶來的更清晰的變量聲明與賦值語法。現(xiàn)今的變量聲明語法十分的直接:左邊是一個變量名,右邊可以是一個數(shù)組:[] 的表達式或一個對象:{} 的表達式,等等。解構(gòu)賦值允許我們將右邊的表達式看起來也像變量聲明一般,然后在左邊將值一一提取。
ES2015 箭頭函數(shù)
ES6允許使用“箭頭”(=>)定義函數(shù)。
var f = v => v;
上面的箭頭函數(shù)等同于:
var f = function(v)
{
return v;
};
由于大括號被解釋為代碼塊,所以如果箭頭函數(shù)直接返回一個對象,必須在對象外面加上括號。
var getTempItem = id => ({ id: id, name: "Temp" });
箭頭函數(shù)可以綁定this對象,大大減少了顯式綁定this對象的寫法(call、apply、bind)。但是,箭頭函數(shù)并不適用于所有場合,所以ES7提出了“函數(shù)綁定”(function bind)運算符,用來取代call、apply、bind調(diào)用。雖然該語法還是ES7的一個提案,但是Babel轉(zhuǎn)碼器已經(jīng)支持。
函數(shù)綁定運算符是并排的兩個雙冒號(::),雙冒號左邊是一個對象,右邊是一個函數(shù)。該運算符會自動將左邊的對象,作為上下文環(huán)境(即this對象),綁定到右邊的函數(shù)上面。