1跃巡、let, const, class, extends, super, arrow functions, template string, destructuring, default, rest arguments 這些是ES6最常用的幾個語法,基本上學(xué)會它們什猖,我們就可以走遍天下都不怕啦票彪!我會用最通俗易懂的語言和例子來講解它們,保證一看就懂不狮,一學(xué)就會降铸。
2、class, extends, super
ES6提供了更接近傳統(tǒng)語言的寫法摇零,引入了Class(類)這個概念推掸。新的class寫法讓對象原型的寫法更加清晰、更像面向?qū)ο缶幊痰恼Z法驻仅,也更加通俗易懂谅畅。
? ? ?上面代碼首先用class定義了一個“類”,可以看到里面有一個constructor方法噪服,這就是構(gòu)造方法毡泻,而this關(guān)鍵字則代表實例對象。簡單地說粘优,constructor內(nèi)定義的方法和屬性是實例對象自己的仇味,而constructor外定義的方法和屬性則是所有實例對象可以共享的。
? ? ?Class之間可以通過extends關(guān)鍵字實現(xiàn)繼承雹顺,這比ES5的通過修改原型鏈實現(xiàn)繼承丹墨,要清晰和方便很多。上面定義了一個Cat類嬉愧,該類通過extends關(guān)鍵字贩挣,繼承了Animal類的所有屬性和方法。
? ? ? ?3、 ?super關(guān)鍵字王财,它指代父類的實例(即父類的this對象)卵迂。子類必須在constructor方法中調(diào)用super方法,否則新建實例時會報錯搪搏。這是因為子類沒有自己的this對象狭握,而是繼承父類的this對象,然后對其進行加工疯溺。如果不調(diào)用super方法论颅,子類就得不到this對象。
? ? ? ? ?ES6的繼承機制囱嫩,實質(zhì)是先創(chuàng)造父類的實例對象this(所以必須先調(diào)用super方法)恃疯,然后再用子類的構(gòu)造函數(shù)修改this。
4墨闲、arrow function
這個恐怕是ES6最最常用的一個新特性了今妄,用它來寫function比原來的寫法要簡潔清晰很多:
? ? ? ? ?5、當(dāng)我們使用箭頭函數(shù)時鸳碧,函數(shù)體內(nèi)的this對象盾鳞,就是定義時所在的對象,而不是使用時所在的對象瞻离。并不是因為箭頭函數(shù)內(nèi)部有綁定this的機制腾仅,實際原因是箭頭函數(shù)根本沒有自己的this,它的this是繼承外面的套利,因此內(nèi)部的this就是外層代碼塊的this推励。
template string:這個東西也是非常有用,當(dāng)我們要插入大段的html內(nèi)容到文檔中時肉迫,傳統(tǒng)的寫法非常麻煩验辞,所以之前我們通常會引用一些模板工具庫,比如mustache等等喊衫。
大家可以先看下面一段代碼:
6跌造、destructuring
ES6允許按照一定模式,從數(shù)組和對象中提取值族购,對變量進行賦值鼻听,這被稱為解構(gòu)(Destructuring)。