Google Chrome支持哪种版本的JavaScript与Mozilla Firefox相关?换句话说,Chrome是否支持Firefox也支持的JavaScript 1.6,1.7或1.8,或者它们的某些组合?
答案 0 :(得分:41)
虽然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>
如果您将语言更改为“javascript1.7”并省略该类型,则它将无法与Firefox 3.5中的JS 1.7功能一起运行。类型部分是必要的。
这似乎与一般的WebKit错误https://bugs.webkit.org/show_bug.cgi?id=23097有关;可能是Chrome模拟Safari行为,即使它使用不同的引擎。
When asked about supporting JS 1.8 features,V8团队表示他们正在尝试跟踪Safari中使用的版本,因此页面在两种浏览器中的行为都相同。
答案 1 :(得分:17)
此主题仍然相关。截至2012年,Chrome支持大多数Javascript 1.6,不包括字符串和数组泛型。它不支持1.7。它支持reduce和reduceRight从1.8,所有1.8.1,Getters和setter以及this page上列出的所有非特定版本的东西。此页面是从Mozilla开发者网络链接的,该网络指定了javascript的版本,找到了here。
答案 2 :(得分:13)
Google Chrome使用V8 javascript engine,目前声明它实施了ECMA-262第3版。这意味着它至少支持版本1.5。
答案 3 :(得分:10)
这是一个简单的Javascript 1.6功能Chrome(和V8用户,如node.js)无法运行:for each … in
for each (variable in object)
statement
因为它是JS 1.5(根据J c的答案)是Chrome声称完全实现的唯一版本。
事实上,Chrome团队主要针对Safari(当时最着名的Webkit用户)的兼容性,并且基于这些理由拒绝了功能。
答案 4 :(得分:7)
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
答案 5 :(得分:4)
这是一个老线程,但是这里有。 Google Chrome不响应以下
function foo(){
let a = 4;
alert(a);
}
foo();
因此它不支持JavaScript 1.7