JavaScript 1.7的跨浏览器支持是什么;什么是新功能?特别是数组理解和;让我们;陈述

JavaScript 1.7的跨浏览器支持是什么;什么是新功能?特别是数组理解和;让我们;陈述,javascript,python,arrays,internet-explorer,cross-browser,Javascript,Python,Arrays,Internet Explorer,Cross Browser,这些新特性中有很多都是从Python中借用来的,并允许创建不那么冗长的应用程序,这总是一件好事。你打了多少次了 for (i = 0; i < arr.length; i++) { /* ... */ } 我认为简洁是件好事。不过,归根结底,这一切都归结于IE IE支持这些新功能吗?其他浏览器呢?不,当他们说“JavaScript”时,他们的字面意思是:Gecko使用的ECMAScript引擎。JScript和其他引擎(AFAIK)不支持这些特性 编辑:据介绍,JavaScrip

这些新特性中有很多都是从Python中借用来的,并允许创建不那么冗长的应用程序,这总是一件好事。你打了多少次了

for (i = 0; i < arr.length; i++) {
    /* ... */
}
我认为简洁是件好事。不过,归根结底,这一切都归结于IE

IE支持这些新功能吗?其他浏览器呢?

不,当他们说“JavaScript”时,他们的字面意思是:Gecko使用的ECMAScript引擎。JScript和其他引擎(AFAIK)不支持这些特性


编辑:据介绍,JavaScript1.7实现了ECMAScript“第3版加上所有JavaScript1.6增强,再加上Pythonic生成器和数组理解([a*a代表(iter中的a)]),带let的块作用域,解构赋值(var[a,b]=[1,2])。因此,这些功能不是ECMAScript的一部分。

除了IE不支持之外,似乎基于webkit的浏览器(Safari、Chrome)尽管声称支持JS 1.7(实际上执行JS 1.7中声明的脚本标记),但实际上不支持这些功能,这意味着目前,JS1.7具有非常好的特性,仅限于Geko浏览器


由于Webkit仍然只执行标记为1.7的脚本,这也意味着我们甚至不能优雅地失败,但当我们使用任何新的关键字或语法时,我们只会在这些浏览器上产生语法错误。

而这个问题有点老,并且标记为“已回答”-我在谷歌上找到的,给出的答案可能不准确,如果不是,肯定不完整

需要注意的是,Javascript不是一个标准。Ken正确地提到ECMAScript是所有浏览器都要遵守的跨浏览器标准,但他没有澄清的是Javascript不是ECMAScript

说Javascript“实现”ECMAScript意味着Javascript包括ECMAScript,以及它自己专有的额外非跨浏览器特性。nicholas给出的每个示例中的
都是Mozilla添加的专有功能的示例,该功能不在任何标准中,因此不太可能被任何其他浏览器采用


Javascript 1.7和1.8特性对于XUL中的扩展开发非常有用,但决不能用于跨浏览器开发——这就是标准的目的。

IE不支持Javascript 1.7。IE有自己的实现——JScript——和自己的扩展,比如条件编译。上面的pythonic示例在除firefoxHarmony drafts for ECMAScript 6之外的浏览器中不起作用,看起来他们将添加以下功能:D()
[/* ... */ for each (i in arr)]