ES6是一門語(yǔ)言嗎?可能很多人對(duì)此都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都網(wǎng)站建設(shè)、做網(wǎng)站服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠(chéng)為客戶提供服務(wù)是我們的理念。創(chuàng)新互聯(lián)公司把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來(lái)開發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!
ES6不是什么前端技術(shù)或語(yǔ)言,ES6全稱是ECMAScript 6,是正式發(fā)布的JavaScript語(yǔ)言的一種標(biāo)準(zhǔn),該標(biāo)準(zhǔn)的目標(biāo)是使得JavaScript語(yǔ)言可以用來(lái)編寫復(fù)雜的大型應(yīng)用程序,成為企業(yè)級(jí)開發(fā)語(yǔ)言。是于2015年6月正式發(fā)布的JavaScript語(yǔ)言的標(biāo)準(zhǔn),正式名為ECMAScript 2015(ES2015)。它的目標(biāo)是使得JavaScript語(yǔ)言可以用來(lái)編寫復(fù)雜的大型應(yīng)用程序,成為企業(yè)級(jí)開發(fā)語(yǔ)言
ECMAScript 發(fā)展歷史
2000年,ECMAScript 4.0開始醞釀。這個(gè)版本最后沒(méi)有通過(guò),但是它的大部分內(nèi)容被ECMAScript6繼承了。因此,ECMAScript6制定的起點(diǎn)其實(shí)是2000年。
2007年10月,ECMAScript 4.0草案發(fā)布,本來(lái)預(yù)計(jì)2008年8月發(fā)布正式版本。但是,各方對(duì)于是否通過(guò)這個(gè)標(biāo)準(zhǔn),發(fā)生了嚴(yán)重分歧。以Yahoo、Microsoft、Google為首的大公司,反對(duì)JavaScript的大幅升級(jí),主張小幅改動(dòng);以JavaScript創(chuàng)造者Brendan Eich為首的Mozilla公司,則堅(jiān)持當(dāng)前的草案。
2008年7月,由于對(duì)于下一個(gè)版本應(yīng)該包括哪些功能,各方分歧太大,爭(zhēng)論過(guò)于激烈,ECMA開會(huì)決定,中止ECMAScript 4.0的開發(fā),將其中涉及現(xiàn)有功能改善的一小部分,發(fā)布為ECMAScript 3.1,而將其他激進(jìn)的設(shè)想擴(kuò)大范圍,放入以后的版本,由于會(huì)議的氣氛,該版本的項(xiàng)目代號(hào)起名為Harmony(和諧)。會(huì)后不久,ECMAScript 3.1就改名為ECMAScript 5。
2009年12月,ECMAScript 5.0正式發(fā)布。Harmony項(xiàng)目則一分為二,一些較為可行的設(shè)想定名為 JavaScript.next繼續(xù)開發(fā),后來(lái)演變成ECMAScript 6;一些不是很成熟的設(shè)想,則被視為JavaScript.next.next,在更遠(yuǎn)的將來(lái)再考慮推出。
2011年,ECMAScript 5.1發(fā)布后開始6.0版的制定。
2013年3月,ECMAScript 6草案凍結(jié),不再添加新功能。新的功能設(shè)想將被放到ECMAScript 7。
2013年12月,ECMAScript 6草案發(fā)布。然后是12個(gè)月的討論期,聽取各方反饋。由于這個(gè)版本引入的語(yǔ)法功能太多,而且制定過(guò)程當(dāng)中,還有很多組織和個(gè)人不斷提交新功能。標(biāo)準(zhǔn)委員會(huì)最終決定,標(biāo)準(zhǔn)在每年的6月份正式發(fā)布一次,作為當(dāng)年的正式版本。接下來(lái)的時(shí)間,就在這個(gè)版本的基礎(chǔ)上做改動(dòng),直到下一年的6月份,草案就自然變成了新一年的版本。
2015年6月,ECMAScript 6(ES6)正式通過(guò),成為國(guó)際標(biāo)準(zhǔn),正式名稱是“ECMAScript 2015”(簡(jiǎn)稱ES2015)。
2016年6月,小幅修訂的“ECMAScript 2016”(簡(jiǎn)稱ES2016或ES7)標(biāo)準(zhǔn)發(fā)布,相當(dāng)于ES6.1版,因?yàn)閮烧叩牟町惙浅P。ㄖ恍略隽藬?shù)組實(shí)例的includes方法和指數(shù)運(yùn)算符),基本上是同一個(gè)標(biāo)準(zhǔn)
ES6 兼容性
不同瀏覽器的不同版本對(duì)ES6的支持度不同,而Babel是一個(gè)廣泛使用的ES6轉(zhuǎn)碼器,可以將ES6代碼轉(zhuǎn)為ES5代碼,從而在現(xiàn)有環(huán)境執(zhí)行,例如:
上面的原始代碼用了箭頭函數(shù),Babel 將其轉(zhuǎn)為普通函數(shù),就能在不支持箭頭函數(shù)的JavaScript環(huán)境執(zhí)行了[8]。
另外,使用Google公司的Traceur轉(zhuǎn)碼器,也可以將ES6代碼轉(zhuǎn)為ES5代碼,需要提前引入其js庫(kù):
第一個(gè)是加載Traceur的庫(kù)文件,第二個(gè)和第三個(gè)是將這個(gè)庫(kù)文件用于瀏覽器環(huán)境。然后就可以加載ES6的用戶腳本了,如:
注意,自定義的script標(biāo)簽的type屬性的值是module,而不是text/javascript。這是Traceur編譯器識(shí)別ES6代碼的標(biāo)志,編譯器會(huì)自動(dòng)將所有type=module的代碼編譯為ES5,然后再交給瀏覽器執(zhí)行。
看完上述內(nèi)容,你們對(duì)ECMAScript 6有進(jìn)一步的了解嗎?如果還想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。