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 ?
Réponses
Trop de publicités?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.
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.
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.