目前所有的主流 Web 瀏覽器都支持 ECMA-262 第三版,即JavaScript 1.5版本,JavaScript 1.6-1.9只是ECMAScript (JavaScript on Gecko)升級(jí)至JavaScript 2.0的臨時(shí)代號(hào)。
Chrome和V8也致力于推動(dòng)JavaScript的發(fā)展,而他們?cè)谝恍┌l(fā)布會(huì)上也透露了關(guān)于支持JavaScript的一些新特性,一起來(lái)看看這些新特性到底包含哪些方面:
Lexical scoping(語(yǔ)法作用域)
現(xiàn)在"let"是新的"var"——傳統(tǒng)的"var"是"let"和"const"的輔助聲明。而后兩者都是為了防止出現(xiàn)歧義而可定義的一種語(yǔ)法作用域。目前,在一個(gè)語(yǔ)法作用域中已允許定義函數(shù)聲明。(注意:語(yǔ)法作用域只限于ES嚴(yán)格模式下。)
Collections(收藏)
有效的地圖和集合將令生活更簡(jiǎn)單容易。任何value函數(shù)都能像一個(gè)鍵或?qū)ο笤啬菢颖皇褂谩?警示:迭代結(jié)束收藏未被指定。)
Weak maps(弱地圖)
當(dāng)一個(gè)關(guān)鍵字失效時(shí),這種特殊的地圖可以自動(dòng)去掉這個(gè)關(guān)鍵字。即垃圾收集器將把不再使用的對(duì)象的內(nèi)存回收掉。
Proxies(代理)
一個(gè)JavaScript對(duì)象或函數(shù)可以通過自定義去代理模擬你能想象到的任何方面的行為。對(duì)于普通功能來(lái)說這個(gè)強(qiáng)大的功能真是上了一個(gè)新層次,它可以用來(lái)實(shí)施各種先進(jìn)的抽象和接口。
V8小組正在為"Harmony"引入更多的新功能特點(diǎn)而努力工作。