2010-04-26 8 views
39

Selon Wikipedia, IE8 ne supporte que Javascript 1.5. Donc, ils disent IE8 ignore complètement les versions de Javascript 1.6, 1.7, 1.8 et 1.9.Quelle (s) version (s) Javascript supporte IE8?

Dois-je faire confiance? Est-ce vrai?

+13

Vous devriez aller mettre à jour l'article Wikipedia avec ce que vous avez appris ici. –

Répondre

43

Eh bien, en fait l'implémentation IE est appelée 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 ECMAScript 3rd Edition Standard, les versions ultérieures, JS 1.6, 1.7 et 1.8 présentent des caractéristiques linguistiques qui sont hors de cette édition standard, souvent appelé extensions Mozilla. C'est pourquoi JScript ne possède aucune de ces fonctionnalités, car elles ne font pas partie de la norme ECMA.

+13

ECMAscript 5 a été publié en décembre 2009 (plusieurs mois avant cette réponse), incorporant plusieurs de ces nouvelles fonctionnalités dans la norme. –

+4

Est-ce que IE8 supporte ECMAscript 5 alors? – noname

+3

@BenNelson En gros, NON. Source: http://kangax.github.io/compat-table/es5/#ie8 – Potherca

3

Oui, c'est vrai (au moins dans la mesure où les fonctions de langue sont supportées). Vous pouvez facilement vérifier cela en utilisant du code Javascript 1.6:

alert([1,2,3].indexOf(2)); 

IE 8 renvoie une erreur.

Notez que IE 8 peut prendre en charge certaines des fonctionnalités ajoutées dans les versions ultérieures de Javascript. IE contient beaucoup de choses en dehors des normes, il est donc probable que certaines d'entre elles soient identiques aux ajouts ultérieurs.

18

Ce test de here renvoie 1.3 dans mon Internet Explorer 8 64 bits.

<SCRIPT Language="JavaScript1.3"> 
jsver = "1.3"; 
</SCRIPT> 
<SCRIPT Language="JavaScript1.4"> 
jsver = "1.4"; 
</SCRIPT> 
<SCRIPT Language="JavaScript1.5"> 
jsver = "1.5"; 
</SCRIPT> 
<SCRIPT Language="JavaScript1.6"> 
jsver = "1.6"; 
</SCRIPT> 
<SCRIPT Language="JavaScript1.7"> 
jsver = "1.7"; 
</SCRIPT> 
<SCRIPT Language="JavaScript1.8"> 
jsver = "1.8"; 
</SCRIPT> 

<BODY> 

<SCRIPT LANGUAGE="JavaScript"> 
document.write("<B>Your browser supports JavaScript version " + jsver + ".</B>") 
</SCRIPT> 

</body> 
</html> 
+3

c'est intéressant ... – MatteoSp

+5

http://jsfiddle.net/jPZj9/ –

+2

Ce test renvoie également 1.3 sur Internet Explorer 11 ... – Shaffe

15

IE ne supporte pas JavaScript du tout. "JavaScript" fait spécifiquement référence à l'implémentation de la norme ECMAScript par Mozilla. Cette norme a été dérivée à l'origine du travail de Netscape/Mozilla sur la langue, mais ils ont depuis divergé. L'implémentation d'ECMAScript par IE s'appelle "JScript" et ne supporte pas la plupart des extensions que Mozilla a faites.

La version de ECMAScript IE vise le standard Third Edition, qui est également la version de JavaScript 1.5, ce qui explique pourquoi ils sont considérés comme similaires. Les moteurs JavaScript d'Opera, Safari et Chrome ciblent tous cette même version; alors que toutes les implémentations ont des bugs qui signifient qu'ils ne répondent pas exactement à la spécification, ECMAScript Third Edition est en général une base solide pour ce qui fonctionne aujourd'hui.

La prochaine version d'ECMAScript est la cinquième édition, récemment standardisée. Tous les navigateurs choisissent des caractéristiques de cette spécification et il est à espérer qu'il deviendra aussi largement supporté à l'avenir. Il ne correspond à aucune version "JavaScript" particulière; il reprend notamment quelques méthodes utiles String et Array qui étaient auparavant dans JavaScript 1.5, mais vous ne trouverez pas la plupart des extensions syntaxiques de Mozilla à JS dans la norme.

Questions connexes