谷歌浏览器-JavaScript版本

谷歌浏览器-JavaScript版本,javascript,firefox,google-chrome,Javascript,Firefox,Google Chrome,与Mozilla Firefox相比,Google Chrome支持哪个版本的JavaScript?换句话说,Chrome是否支持Firefox也支持的JavaScript 1.6、1.7或1.8,或者它们的组合?Google Chrome最多支持JavaScript 1.7: <script language="javascript1.7">alert(1.7);</script> - Alerts <script language="javascript1.8"

与Mozilla Firefox相比,Google Chrome支持哪个版本的JavaScript?换句话说,Chrome是否支持Firefox也支持的JavaScript 1.6、1.7或1.8,或者它们的组合?

Google Chrome最多支持JavaScript 1.7:

<script language="javascript1.7">alert(1.7);</script> - Alerts
<script language="javascript1.8">alert(1.8);</script> - Doesn't alert
警报(1.7);-警报
警惕(1.8);-不警觉

谷歌Chrome使用的是,目前声明它实现了ECMA-262,第三版。这意味着它至少支持1.5版。

虽然Chrome将执行标记为“javascript1.7”的Javascript,但它不支持JS1.7的特性,如“let”作用域变量运算符

此代码将在Firefox 3.5上运行,但不会在使用V8的Chrome上运行:

<script language="javascript" type="application/javascript;version=1.7">
    function foo(){ let a = 4; alert(a); }; foo();
</script>

函数foo(){let a=4;alert(a);};foo();
如果您将语言更改为“javascript1.7”并省略该类型,它将不会与Firefox3.5中的JS1.7功能一起运行。类型部分是必需的

这似乎与一般的WebKit bug有关;可能是Chrome模仿了Safari的行为,尽管它使用了不同的引擎


,V8团队表示,他们正在尝试跟踪Safari中使用的版本,以便页面在两种浏览器中的行为相同。

这里有一个简单的Javascript 1.6功能Chrome(而V8用户,如node.js)不会运行:

因为JS1.5(根据JC的回答)是Chrome声称完全实现的唯一版本


事实上,Chrome团队的主要目标是与Safari(当时最著名的Webkit用户)兼容,并基于这些理由拒绝提供这些功能。

这是一个古老的主题,不过这里是这样的。Google Chrome没有对以下内容做出回应

function foo(){
  let a = 4;
  alert(a);
}
foo();

因此,它不支持JavaScript 1.7,该线程仍然相关。截至2012年,Chrome支持大部分Javascript 1.6,不包括字符串和数组泛型。它不支持1.7中的任何一个。它支持1.8中的reduce和reduceRight、1.8.1中的所有内容、getter和setter以及上列出的所有非版本特定的内容。此页面链接自Mozilla开发者网络,该网络指定了javascript的版本。

这听起来像是会随着时间的推移而改变的事情——我们确定Chrome在离开beta版之前不会支持1.8吗?但是请投票给我,告诉我如何检查你自己。@joel:那太好笑了。你见过谷歌的产品离开测试版吗?格雷格,你的测试还不够。Chrome/V8将运行javascript1.7部分中的代码,但实际上并没有测试JS1.7语言特性。这些在Chrome/V8中不受支持。我要指出,我当前的Chrome版本仍然不支持迭代器或yield关键字之类的东西。这个答案是不正确的。尽管V8将在javascript1.7标记中运行代码,但到目前为止,它还没有包含任何1.7特定的特性。我被迫使用嵌套闭包:奇怪。我认为(
for(vari in objects)
迭代器不是第三版中的东西,但它在Chrome和Safari中运行良好。@skerit说“它实现了”,至少ECMA-262 v3中的所有功能都可用。他们可以自由添加其他功能,包括您提到的功能。Chrome16.0不支持。浪费了一个小时想知道为什么代码不起作用…您没有正确使用forEach。检查这里的语法:@Sharon这是另一个特性。我的回答是由这个问题构成的;我选择了Chrome中缺少的JS1.6功能。如果你错过了链接:这并不能完全回答问题。作为一个侧栏,脚本标签的语言属性自html 4规范以来就被弃用了,建议使用类型属性。这真的很奇怪,我的插件的js与chrome有问题,但在其他浏览器上工作得很好
onclick()
不在
选择框中工作。我尝试了
onchange()
onblur()
onfocus()
,但仍然无法在chrome上工作。在chrome上的javascript 1.7中,我遇到了一些其他问题,比如访问全局变量等等
function foo(){
  let a = 4;
  alert(a);
}
foo();