2010-04-26 12 views
39

Según Wikipedia, IE8 solo es compatible con Javascript 1.5. Entonces dicen que IE8 ignora por completo las versiones de Javascript 1.6, 1.7, 1.8 y 1.9.¿Qué versión (s) de Javascript admite IE8?

¿Debo confiar? ¿Es verdad?

+13

Deberías actualizar el artículo de Wikipedia con lo que has aprendido aquí. –

Respuesta

43

Bueno, en realidad la implementación de IE se llama JScript, JavaScript (TM) es la implementación de Mozilla.

JScript y JavaScript son dos dialectos basados ​​en ECMAScript.

JavaScript 1.5 Conforme a la ECMAScript 3rd Edition Standard, las versiones posteriores, JS 1.6, 1.7 y 1.8 presentan las características del lenguaje que están fuera de esa edición estándar, a menudo llamado Mozilla Extensiones.

Es por eso que JScript no tiene ninguna de estas características, porque no son parte del estándar ECMA.

+13

ECMAscript 5 se publicó en diciembre de 2009 (varios meses antes de esta respuesta), incorporando muchas de estas nuevas características en el estándar. –

+4

¿IE8 es compatible con ECMAscript 5? – noname

+3

@BenNelson En términos generales, NO. Fuente: http://kangax.github.io/compat-table/es5/#ie8 – Potherca

3

Sí, eso es cierto (al menos en cuanto a qué funciones de idioma son compatibles). Usted puede verificar esto fácilmente usando algún código de Javascript 1.6:

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

IE 8 arroja un error.

Tenga en cuenta que IE 8 podría ser compatible con algunas de las características agregadas en las versiones posteriores de Javascript. IE contiene muchas cosas fuera de los estándares, por lo que es probable que algunas de ellas sean las mismas que las adiciones posteriores.

18

Esta prueba tomada de here devuelve 1.3 en mi Internet Explorer 8 de 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

que es interesante ... – MatteoSp

+5

http://jsfiddle.net/jPZj9/ –

+2

Esta prueba también devuelve 1.3 en Internet Explorer 11 ... – Shaffe

15

IE no es compatible con JavaScript en absoluto. "JavaScript" se refiere específicamente a la implementación de Mozilla del estándar ECMAScript. Este estándar se derivó originalmente del trabajo de Netscape/Mozilla en el lenguaje, pero desde entonces han divergido. La implementación de IE de ECMAScript se llama "JScript" y no admite muchas de las extensiones que Mozilla ha realizado.

La versión de ECMAScript IE tiene como objetivo el estándar de la Tercera Edición, que también es la versión a la que apunta JavaScript 1.5, por lo que se consideran similares. Los motores de JavaScript de Opera, Safari y Chrome apuntan a esta misma versión; aunque todas las implementaciones tienen errores que significan que no cumplen exactamente con las especificaciones, en general, ECMAScript Third Edition es una base sólida para lo que funciona hoy en día.

La próxima versión de ECMAScript es la Quinta Edición, que fue estandarizada recientemente. Todos los navegadores están recogiendo características de esta especificación y se espera que sea tan ampliamente compatible en el futuro. No se alinea con ninguna versión particular de "JavaScript"; Notablemente recoge algunos métodos útiles String y Array que anteriormente estaban en JavaScript 1.5, pero no encontrará la mayoría de las extensiones sintácticas de Mozilla en JS en el estándar.

Cuestiones relacionadas