下个版本的JavaScript被称为ECMAScript 3.1 “Harmony”,Google Chrome和V8现在已经支持其中规划的某些特性。要想尝试这些特性,你可以使用Chrome的开发频道版本,并且打开“Experimental JavaScript features”标志。
在Google的新闻稿中,强调的特性包括:
词法定界: 现在,“let”关键字替代了“var”关键字,传统的“var”声明会补充“let”和“const”声明。二者都是在块范围内的绑定,这消除了很多错 误和诡异行为的主要来源。本地范围的函数声明现在得到正式允许,同时服从词法定界。(注意:词法定界只在ES的严格模式中支持。)
集合:高效的map和set将会让编程容易许多。包括对象的任何值都可以用作键或元素。不再有意外,不再需要把对象强制变为词典。(警告:集合中的迭代访问尚未说明。)
Weak maps:一种特别的map,当垃圾收集器发现map中一个键不再可用时,可以自动做出判断,将键值对从map中移除。这么做很有用,包括避免长期存在的表格的内存泄露,还能让开发人员不再担心长期未使用的变量。
代理:代理可以模拟一个JavaScript对象或函数,并可自定义能想象得到的任何行为。这是非常强大的功能,将反射带入到更高级别,并可用作实现多种高级抽象和接口。