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