47

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

4

6 回答 6

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 的行为,即使它使用不同的引擎。

当被问及是否支持 JS 1.8 功能时,V8 团队表示他们正在尝试跟踪 Safari 中使用的版本,以便页面在两种浏览器中的行为相同。

于 2009-07-14T13:24:08.493 回答
17

这个线程仍然是相关的。截至 2012 年,Chrome 支持大部分 Javascript 1.6,不包括字符串和数组泛型。它不支持1.7。它支持从 1.8 开始的 reduce 和 reduceRight,所有 1.8.1,以及 Getter 和 setter 以及此页面上列出的所有非版本特定的东西。此页面链接自 Mozilla 开发者网络,该网络指定了 javascript 的版本,可在此处找到。

于 2012-03-14T03:52:50.070 回答
13

Google Chrome 使用V8 javascript 引擎,该引擎目前声明它实现了 ECMA-262,第 3 版。这意味着它至少支持 1.5 版。

于 2008-11-18T21:46:31.417 回答
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 用户)兼容,并以此为由拒绝了功能。

于 2010-01-08T15:11:20.203 回答
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
于 2008-11-18T21:41:01.460 回答
4

这是一个旧线程,但是这里有。谷歌浏览器不响应以下内容

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

因此它不支持 JavaScript 1.7

于 2011-04-13T21:12:52.490 回答