Selon Wikipedia, IE8 supporte uniquement Javascript 1.5. Ils affirment donc qu'IE8 ignore complètement les versions Javascript 1.6, 1.7, 1.8 et 1.9.
Devrais-je faire confiance? Est-ce vrai?
Selon Wikipedia, IE8 supporte uniquement Javascript 1.5. Ils affirment donc qu'IE8 ignore complètement les versions Javascript 1.6, 1.7, 1.8 et 1.9.
Devrais-je faire confiance? Est-ce vrai?
Eh bien, en réalité, l'implémentation d'IE s'appelle JScript, JavaScript(TM) est l'implémentation de Mozilla.
JScript et JavaScript sont deux dialectes basés sur ECMAScript.
JavaScript 1.5 est conforme à la Norme de la 3ème édition de l'ECMAScript, les versions ultérieures, JS 1.6, 1.7 et 1.8 introduisent des fonctionnalités linguistiques qui ne font pas partie de cette édition standard, souvent appelées Extensions Mozilla.
C'est pourquoi JScript ne possède aucune de ces fonctionnalités, car elles ne font pas partie de la norme ECMA.
IE ne prend pas en charge JavaScript du tout. “JavaScript” fait spécifiquement référence à l'implémentation de Mozilla de la norme ECMAScript. Cette norme a été initialement dérivée du travail de Netscape/Mozilla sur le langage, mais ils ont depuis divergé. L'implémentation d'IE de l'ECMAScript s'appelle “JScript”, et elle ne prend pas en charge bon nombre des extensions apportées par Mozilla.
La version d'ECMAScript visée par IE est la norme de la Troisième Édition, à laquelle la version JavaScript 1.5 visait également, c'est pourquoi ils sont considérés comme similaires. Les moteurs JavaScript d'Opera, Safari et Chrome visent tous cette même version; même si toutes les implémentations ont des bugs qui signifient qu'elles ne respectent pas exactement la norme, en général l'ECMAScript Troisième Édition est une base solide pour ce qui fonctionne aujourd'hui.
La prochaine version d'ECMAScript est la Cinquième Édition, qui a été récemment normalisée. Tous les navigateurs adoptent des fonctionnalités de cette spécification et l'espoir est qu'elle sera largement prise en charge à l'avenir. Elle ne se calque sur aucune version particulière de “JavaScript”; elle reprend notamment certaines méthodes utiles de String
et Array
qui étaient précédemment présentes dans JavaScript 1.5, mais vous ne trouverez pas la plupart des extensions syntaxiques de Mozilla à JS dans la norme.
Oui, c'est vrai (du moins en ce qui concerne les fonctionnalités de langage prises en charge). Vous pouvez facilement vérifier cela en utilisant un code Javascript 1.6 :
alert([1,2,3].indexOf(2));
IE 8 lance une erreur.
Notez que IE 8 pourrait prendre en charge certaines des fonctionnalités ajoutées dans des versions ultérieures de Javascript. IE contient beaucoup de choses en dehors des normes, il est donc probable que certaines d'entre elles se trouvent être les mêmes que les ajouts ultérieurs.
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.