2016-05-10 極客學(xué)院 極客weekly
英文原文來源:Chromium Blog
作者:Seth Thompson
翻譯:Guokai Han
JavaScript 是一個持續(xù)演進(jìn)的編程語言,并由瀏覽器廠商、開發(fā)者和社區(qū)成員組成的委員會制定標(biāo)準(zhǔn)。在過去兩年中,委員會引入了 JavaScript 歷史上的最大更新 ES6 ,而 ES 7 是年度更新的第一版。這兩個版本共添加了數(shù)百個新特性以幫助開發(fā)者編寫直觀、簡潔和快速的應(yīng)用程序。經(jīng)過長時間的協(xié)作設(shè)計、規(guī)范制定和實現(xiàn)工作,V8 團(tuán)隊完成了 JavaScript 語言支持的一個主要里程碑。現(xiàn)在 Chrome Canary 可同時執(zhí)行 ES6 和 ES7,這些將被集成到 Chrome 52 中。
ES6 和 ES7 為 JavaScript 開發(fā)者帶來了許多在其它語言中受歡迎而在 Web 中缺少的功能特性。這些特性可以簡化常見編程模式、使代碼更容易編寫以及定制底層的 JavaScript 行為。例如,類(Class) 可以讓開發(fā)者更容易地編寫面向?qū)ο蟪绦颍踩財U(kuò)展(extend) JavaScript 內(nèi)建對象。箭頭函數(shù)(Arrow functions)、默認(rèn)參數(shù)(default parameters)和數(shù)組的便利方法(array convenience methods)使得常用功能更容易編寫,而不需要在項目之間復(fù)制黏貼代碼。JavaScript 的異步處理流和嵌套回調(diào)讓人難以理解,所以 ES6 中引入了promises 、迭代器和生成器(iterators, and generators)以簡化異步代碼,讓控制流更直觀而不易出錯。proxies 和 well-known symbols 這樣的強(qiáng)大特性讓高級開發(fā)者可以定制語言的行為從而更好地適應(yīng)他們的應(yīng)用需求。
為了能夠在網(wǎng)站中充分利用這些新的 JavaScript 特性,各種瀏覽器都必需支持最新的規(guī)范。幸好,跨瀏覽器支持在去幾個月中有了快速的改進(jìn)。現(xiàn)在所有現(xiàn)代瀏覽器的最新開發(fā)版都已支持超過 90% 的 ES6 規(guī)范。通過現(xiàn)有功能來實現(xiàn)尚未支持的特性的方法(polyfill)和代碼翻譯器(transpilation)也可以支持更老的瀏覽器。接下來的幾個月會有更多的規(guī)范實現(xiàn)。最近 JavaScript 在 Web 上的模塊化加載機(jī)制被標(biāo)準(zhǔn)化為 <script type=”module”> 標(biāo)簽。Chromium 已在開始實現(xiàn)這個新標(biāo)簽。模塊支持將很快可用,它讓使用 ES6 和 ES7 代碼編寫網(wǎng)站更容易。
有關(guān) JavaScript 標(biāo)準(zhǔn)處理的更多細(xì)節(jié),有些特性仍在討論中,例如正確的尾調(diào)用(tail call)。關(guān)于規(guī)范一致性的更多技術(shù)細(xì)節(jié)請訪問 V8 博客 。請繼續(xù)關(guān)注我們獲得后續(xù) JavaScript 特性支持和性能改進(jìn)的消息。
極客weekly
ID:geekweekly
互聯(lián)網(wǎng)犄角旮旯的內(nèi)容匯聚
一個專做分享的平臺