web-dev-qa-db-fra.com

Comment détecter la version ECMAscript?

Je veux voir quelle version d'ECMAscript j'utilise dans mon navigateur (par exemple, chrome 59), car il y a une certaine différence entre ECMAscript3 et ECMAscript5 lorsque l'on traite quelque chose de RegExp.
J'ai trouvé les informations pertinentes à ce sujet, mais je ne trouve pas de réponse spécifique sur la façon de détecter la version ECMAscript.
Merci d'avance.

13
jacky

Peut-être que vous pouvez essayer d'utiliser certaines structures de données qui sont spécifiquement ajoutées dans ES6 comme Map, Set etc. Il s'agit de faire la différence entre ES5 et ES6 mais vous pouvez rechercher des fonctionnalités ajoutées dans ES5 qui ne sont pas présents dans ES3 dans ton cas?

try {
  var k = new Map();
  console.log("ES6 supported!!")
} catch(err) {
  console.log("ES6 not supported :(")
}

try {
  var k = new HashMap();
  console.log("ES100 supported!!")
} catch(err) {
  console.log("ES100 not supported :(")
}
7
Nandu Kalidindi

Je ne pense pas que cela soit possible car les navigateurs n'implémentent pas normalement toutes les fonctionnalités d'une version ECMAScript à la fois. C'est pourquoi nous avons des bibliothèques comme Modernizr et des sites Web comme Puis-je utiliser ... pour savoir quelles fonctionnalités peuvent être utilisées.

Vous pouvez toujours créer un petit test qui détermine le comportement de RegEx dans la version du navigateur de l'utilisateur.

6
Niklas Higi

ECMAScript est une norme de l'industrie:

ECMAScript est une spécification de langage de script déposée normalisée par Ecma International dans ECMA-262 et ISO/IEC 16262. Elle a été créée pour normaliser JavaScript, afin de favoriser plusieurs implémentations indépendantes.

Javascript est une implémentation populaire, plus ou moins:

JavaScript est resté l'implémentation la plus connue d'ECMAScript depuis la première publication de la norme, avec d'autres implémentations bien connues, notamment JScript et ActionScript. wikipedia

Compte tenu de l'état actuel des implémentations JavaScript dans divers navigateurs, node.js, etc., personne ne se versionne spécifiquement, mais continue d'évoluer avec de nouvelles fonctionnalités. La meilleure façon est donc de détecter, éventuellement avec des bibliothèques tierces, si la fonctionnalité souhaitée existe, puis de l'utiliser. Sinon, retombez sur un modèle plus traditionnel. Normalement, c'est pour essayer certaines opérations et puis vérifier si comme prévu, pas de magie.

4
themefield