web-dev-qa-db-fra.com

Google Chrome - version JavaScript

Quelle version de JavaScript Google Chrome prend en charge par rapport à Mozilla Firefox? En d'autres termes, Chrome prend en charge JavaScript 1.6, 1.7 ou 1.8, ce que Firefox prend également en charge). ou une combinaison d'entre eux?

46
brad

Tandis que Chrome exécutera Javascript marqué comme "javascript1.7", il ne prend pas en charge les fonctionnalités JS1.7 comme l'opérateur de variable de portée "let".

Ce code fonctionnera sur Firefox 3.5 mais pas sur Chrome en utilisant V8:

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

Si vous changez la langue en "javascript1.7" et omettez le type, il ne fonctionnera pas avec les fonctionnalités JS 1.7 de Firefox 3.5. La section type est nécessaire.

Cela semble être lié à un bogue général de WebKit, https://bugs.webkit.org/show_bug.cgi?id=23097 ; il se peut que Chrome émule le comportement de Safari même s'il utilise un moteur différent.

Interrogé sur la prise en charge des fonctionnalités de JS 1.8 , l'équipe V8 a déclaré qu'elle essayait de suivre la version utilisée dans Safari afin que les pages agissent de la même manière dans les deux navigateurs.

41
Ben Combee

Ce fil est toujours d'actualité. À partir de 2012, Chrome prend en charge la plupart de Javascript 1.6, à l'exclusion des génériques de chaîne et de tableau. Il ne prend en charge aucune des versions 1.7. Il prend en charge la réduction et la réduction à droite à partir de la version 1.8, la totalité de la version 1.8.1, et Getters et setters et toutes les choses non spécifiques à la version répertoriées sur cette page . Cette page est liée à partir du Mozilla Developer Network, qui spécifie les versions de javascript, trouvées ici .

17
Case

Google Chrome utilise le moteur javascript V8 , qui indique actuellement qu'il implémente ECMA-262, 3e édition. Cela impliquerait qu'il prend en charge au moins la version 1.5.

13
J c

Voici une simple fonctionnalité Javascript 1.6 Chrome (et les utilisateurs V8, comme node.js) ne fonctionnera pas: pour chaque… in

for each (variable in object)
  statement

Comme c'est JS 1.5 (selon la réponse de J c) est la seule version Chrome prétend être complètement implémentée.

En fait, l'équipe Chrome) a principalement visé la compatibilité avec Safari (l'utilisateur Webkit le plus important à l'époque) et a refusé les fonctionnalités pour ces raisons.

10
Tobu

Google Chrome prend en charge jusqu'à Javascript 1.7:

<script language="javascript1.7">alert(1.7);</script> - Alerts
<script language="javascript1.8">alert(1.8);</script> - Doesn't alert
7
Greg

Ceci est un vieux fil, cependant ici va. Google Chrome ne répond pas à ce qui suit

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

par conséquent, il ne prend pas en charge JavaScript 1.7

4
Jens Larsen