https://developer.mozilla.org/en/New_in_JavaScript_1.7
很多这些新功能是由Python中借来的,并且将允许创建更简洁的应用程序,这始终是一件好事。 有多少次你输入
for (i = 0; i < arr.length; i++) {
/* ... */
}
对于非常简单的操作? 这是不是可以更容易:
[/* ... */ for each (i in arr)]
我觉得简洁是一个伟大的事情。 基本上,这一切都归结于IE浏览器中结束,虽然。
IE浏览器是否支持这些新功能? 那么其他的浏览器?
不,当他们说“JavaScript的”,他们那意思:由壁虎使用ECMAScript的引擎。 JScript和其他引擎(据我所知)不支持这些功能。
编辑:根据维基百科 ,JavaScript 1.7中实现的ECMAScript“第3版加上所有的JavaScript 1.6改进,以及Python化发生器和阵内涵([A * A为(在ITER A)]),块范围与让,解构分配(VAR [一,b] = [1,2])”。 因此,这些功能不是ECMAScript的一部分。
虽然这个问题是有点老了,并标有“回答” - 我发现它在谷歌和给出的答案是不准确的可能,如果还是不行,绝对不完整的。
需要注意的是JavaScript是不是一个标准是非常重要的。 肯正确地提到,ECMAScript是跨浏览器的标准,所有的浏览器旨在遵守,但他并没有说明的是,JavaScript并不是ECMAScript的。
说的Javascript“工具”的ECMAScript指的Javascript包括ECMAScript的,再加上它自己专有的额外非跨浏览器的功能。 在for each
由Nicholas给定的例子是由Mozilla加入一个专有特征,是不是在任何标准,并且因此不太可能被任何其他浏览器可以采用的一个实例。
JavaScript的1.7和1.8的特点是用XUL扩展开发有用的,但不应该被用于跨浏览器开发 - 这就是标准是。
除了IE浏览器不支持它,它似乎是基于WebKit的浏览器(Safari浏览器,Chrome浏览器),尽管声称有JS 1.7的支持(在实际执行中声明为在JS 1.7脚本标记),实际上并不支持任何这些功能,其意味着现在,JS 1.7具有非常不错的功能仅限于单独GEKO浏览器。
而由于WebKit的执行仍标记为1.7的脚本只,这也意味着我们甚至不能正常失败,但我们只产生在这些浏览器的语法错误,当我们使用任何新的关键字或语法。
文章来源: What is cross browser support for JavaScript 1.7's new features? Specifically array comprehensions and the “let” statement