科學(xué)在發(fā)展花竞,技術(shù)在進(jìn)步循集。ES6的發(fā)展是必然的。下面提到的語法可能也就是es6新特性的10%-20%窿撬,但是開發(fā)上占了80%左右的启昧。廢話不多說。
? ? ? ? 1.let const
const:在ES6中尤仍,一般用于聲明常量,聲明后不可更改
let:不可以重復(fù)聲明箫津,不會(huì)提前聲明,會(huì)形成塊級作用域{}
let和var區(qū)別在于宰啦,let有塊級作用域的的區(qū)分概念苏遥。
如下實(shí)例
第二個(gè)實(shí)例中。let在花括號中形成了作用域赡模,而用var聲明的話田炭,相當(dāng)于聲明了一個(gè)全局變量。
? ? ? ? 2.arrow function
圖片中第一個(gè)sum函數(shù)是ES6的寫法漓柑,第二個(gè)sum函數(shù)是換成ES5的寫法教硫。
箭頭函數(shù)可以繼承上下文的this
需要注意的是,在ES5中辆布,函數(shù)體內(nèi)的this對象瞬矩,就是定義時(shí)所在的對象,而不是使用時(shí)所在的對象锋玲。
在ES6中景用,this指向的固定化,并不是因?yàn)榧^函數(shù)內(nèi)部有綁定this的機(jī)制惭蹂,實(shí)際原因是箭頭函數(shù)根本沒有自己的this伞插,導(dǎo)致內(nèi)部的this就是外層代碼塊的this割粮。正是因?yàn)樗鼪]有this,所以也就不能用作構(gòu)造函數(shù)媚污。
同時(shí)舀瓢,ES6不可以使用arguments對象,該對象在函數(shù)體內(nèi)不存在耗美。如果要用京髓,可以用Rest參數(shù)代替。
? ? ? ? 3.template string(模板字符串)
在ES6中幽歼,我們可以使用新的語法$?{NAME}朵锣,并把它放在反引號里谬盐。
在多行字符串的拼接中甸私,使用反引號即可完成拼接。
? ? ? ? 3.Default Parameters(默認(rèn)參數(shù))
在ES5中飞傀,我們設(shè)置默認(rèn)參數(shù)需要用上敘link1方法皇型。同時(shí),傳參的時(shí)候需要注意砸烦!不能傳0弃鸦。因?yàn)?是false。傳進(jìn)去不能達(dá)到你預(yù)期的效果幢痘。在ES6中的默認(rèn)參數(shù)唬格,可以直接寫在傳參里面。是不是覺得省事很多颜说。同時(shí)购岗,傳0的缺陷也得到了解決
? ? ? ? 4.destructuring(解構(gòu)賦值)
ES6中的解構(gòu)賦值,也使用得很廣泛门粪。
ES6結(jié)構(gòu)賦值也可以反過來喊积,如上敘的圖片最后一行。
當(dāng)然玄妈,這只是冰山一角乾吻,ES6還提供了很多新功能。有興趣的可以詳細(xì)了解
1拟蜻、Class (類)構(gòu)造函數(shù)
2绎签、?Modules?(模塊)
3、?Promises(處理異步)
4酝锅、全新的Math,?Number,?String,?Array?和?Object?方法
5诡必、二進(jìn)制和八進(jìn)制數(shù)據(jù)類型
6、默認(rèn)參數(shù)不定參數(shù)擴(kuò)展運(yùn)算符
7屈张、Symbols符號
8擒权、tail調(diào)用
9袱巨、Generators?(生成器)
10、New?data?structures?like?Map?and?Set(新的數(shù)據(jù)構(gòu)造對像MAP和set)