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是否支持这些新功能?其他浏览器呢?
发布于 2009-08-25 19:54:29
不,当他们说"JavaScript“时,他们指的是字面意思: Gecko使用的ECMAScript引擎。JScript和其他引擎不支持这些功能。
编辑:根据wikipedia的说法,JavaScript 1.7实现了ECMAScript“第三版加上所有的JavaScript 1.6增强,加上Pythonic生成器和数组理解(a*a表示(在iter中是a)),块作用域with let,解构赋值(var a,b=1,2)”。所以这些特性不是ECMAScript的一部分。
发布于 2010-02-06 03:20:41
虽然这个问题有点陈旧,并被标记为“已回答”--但我在谷歌上找到了它,给出的答案可能不准确,如果不准确,肯定不完整。
值得注意的是,Javascript不是一个标准。Ken正确地提到了ECMAScript是所有浏览器都要遵守的跨浏览器标准,但他没有澄清的是,Javascript不是ECMAScript。
可以说Javascript“实现”了ECMAScript,这意味着Javascript包含了ECMAScript,以及它自己专有的额外的非跨浏览器特性。nicholas给出的for each示例是Mozilla添加的专有特性的一个示例,该特性没有任何标准,因此不太可能被任何其他浏览器采用。
JavaScript1.7和1.8特性对于XUL中的扩展开发很有用,但绝不能用于跨浏览器开发--这就是标准的用途。
发布于 2009-10-19 12:40:29
除了IE不支持它之外,似乎基于webkit的浏览器(Safari,Chrome),尽管声称支持JS1.7(实际上正在执行JS1.7中声明的脚本标签),但实际上并不支持这些功能中的任何一个,这意味着目前,JS1.7及其非常好的功能仅限于Geko浏览器。
由于Webkit仍然只执行标记为1.7的脚本,这也意味着我们甚至不能优雅地失败,但当我们使用任何新的关键字或语法时,我们只会在这些浏览器上产生语法错误。
https://stackoverflow.com/questions/1330498
复制相似问题