Google Chrome – JavaScript版本

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

虽然Chrome会执行标记为“javascript1.7”的JavaScript,但它不支持像“let”作用域variables运算符这样的JS1.7function。

此代码将在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”并忽略该types,则不会使用Firefox 3.5中的JS 1.7function运行。 types部分是必要的。

这似乎与一般WebKit错误有关, https ://bugs.webkit.org/show_bug.cgi?id =23097 ; Chrome可能会模仿Safari的行为,即使它使用了不同的引擎。

当被问及支持JS 1.8的function时 ,V8团队表示他们正试图追踪Safari中使用的版本,因此在两种浏览器中页面的行为都是相同的。

这个线程仍然是相关的。 截至2012年,Chrome支持大部分Javascript 1.6,不包括string和数组generics。 它不支持1.7。 它支持从1.8,全部1.8.1,以及Getters和setter以及本页面列出的所有非版本特定的东西中减less和减less。 这个页面是从Mozilla开发者networking链接的,它指定了JavaScript的版本,在这里find。

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

下面是一个简单的Javascript 1.6functionChrome(和V8用户,比如node.js)不会运行: 对于每个… in

 for each (variable in object) statement 

因为它是JS 1.5(每Jc的答案)是Chrome声称完全实现的唯一版本。

事实上,Chrome团队的主要目的是与Safari(当时最杰出的Webkit用户)兼容,并拒绝了这些理由。

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 

这是一个古老的线索,但是这里。 Google Chrome不会响应以下内容

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

因此它不支持JavaScript 1.7