46 votes

Google Chrome - version JavaScript

Quelle version de JavaScript Google Chrome prend-il en charge par rapport à Mozilla Firefox ? En d'autres termes, est-ce que Chrome prend en charge JavaScript 1.6, 1.7 ou 1.8, que Firefox prend également en charge, ou une combinaison de ces versions ?

41voto

Ben Combee Points 7193

Alors 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 s'exécutera sur Firefox 3.5 mais pas sur Chrome utilisant V8:

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

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

Ceci semble être lié à un bug 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ée sur la prise en charge des fonctionnalités JS 1.8, l'équipe V8 a déclaré qu'elle essayait de suivre la version utilisée dans Safari afin que les pages se comportent de la même manière dans les deux navigateurs.

17voto

Case Points 1126

Ce fil de discussion est toujours pertinent. En 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 aucun 1.7. Il prend en charge reduce et reduceRight à partir de 1.8, tout 1.8.1, et Getters et setters ainsi que toutes les choses spécifiques à la version non répertoriées sur cette page. Cette page est liée au Réseau de développeurs Mozilla, qui spécifie les versions de javascript, que vous trouverez ici.

13voto

J c Points 3498

Google Chrome utilise le moteur JavaScript V8, qui déclare actuellement implémenter ECMA-262, 3ème édition. Cela impliquerait qu'il prend en charge au moins la version 1.5.

10voto

Tobu Points 10101

Voici une fonctionnalité simple de Javascript 1.6 que Chrome (et les utilisateurs de V8, comme node.js) ne prendra pas en charge: for each … in

for each (variable in object)
  statement

Comme c'est JS 1.5 (selon la réponse de J. c), c'est la seule version que Chrome prétend implémenter complètement.

En fait, l'équipe de Chrome vise principalement la compatibilité avec Safari (le plus grand utilisateur de Webkit à l'époque) et a refusé des fonctionnalités pour cette raison.

7voto

Greg Points 132247

Google Chrome prend en charge jusqu'à Javascript 1.7 :

alert(1.7); - Alertes
alert(1.8); - Ne pas alerter

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X