2008-11-18 36 views
45

¿Qué versión de JavaScript admite Google Chrome en relación con Mozilla Firefox? En otras palabras, ¿es Chrome compatible con JavaScript 1.6, 1.7 o 1.8 que Firefox también admite o una combinación de ellos?Google Chrome - Versión de JavaScript

+0

Como una barra lateral, el atributo de idioma de la etiqueta de secuencia de comandos se ha desaprobado desde la especificación html 4, se recomienda utilizar el atributo de tipo en su lugar. – seanb

+0

Esto es realmente extraño, los js de mi plugin tienen problemas con Chrome, pero funcionan perfectamente en otros navegadores. 'onclick()' no funciona en 'select-box'. intenté 'onchange()', 'onblur()', 'onfocus()' pero aún no funcionaba en chrome. – Frank

Respuesta

41

Mientras que Chrome ejecutará Javascript marcado como "javascript1.7", no es compatible con las características de JS1.7 como el operador de variable de ámbito "let".

Este código se ejecutará en Firefox 3.5, pero no en Chrome utilizando V8:

<script language="javascript" type="application/javascript;version=1.7"> 
    function foo(){ let a = 4; alert(a); }; foo(); 
</script> 

Si cambia el idioma a "javascript1.7" y omite el tipo, no se ejecutará con JS 1.7 características de Firefox 3.5. La sección de tipo es necesaria.

Esto parece estar relacionado con un error general de WebKit, https://bugs.webkit.org/show_bug.cgi?id=23097; Es posible que Chrome emule el comportamiento de Safari aunque utilice un motor diferente.

When asked about supporting JS 1.8 features, el equipo V8 dijo que estaban tratando de rastrear la versión utilizada en Safari para que las páginas actuaran de la misma manera en ambos navegadores.

+4

Ese con let es molesto. En su lugar, me veo obligado a utilizar cierres anidados: https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Working_with_Closures#Creating_closures_in_loops.3a_A_common_mistake – Tobu

5

Google Chrome soporta hasta 1,7 Javascript:

<script language="javascript1.7">alert(1.7);</script> - Alerts 
<script language="javascript1.8">alert(1.8);</script> - Doesn't alert 
+2

Esto suena como el tipo de cosa que cambiará con el tiempo: ¿estamos seguros de que Chrome no será compatible con 1.8 en el momento en que salga de la versión beta? Pero vota por mostrar cómo verificarlo usted mismo. –

+0

Estoy seguro de que lo soportará * eventualmente * pero no tengo ningún conocimiento interno ... posiblemente algunos empleados de Google son fanáticos de SO y podrían aclararnos. – Greg

+5

@joel: Eso es muy gracioso. ¿Alguna vez has visto un producto de Google dejar beta? – NotMe

12

Google Chrome utiliza el V8 javascript engine, que establece actualmente que implementa ECMA-262, 3ª edición. Esto implicaría que admite al menos la versión 1.5.

+0

Extraño. Pensé que el iterador 'for (var i in objects)' no estaba en la tercera edición, pero funciona bien en Chrome y Safari. – skerit

+3

@skerit diciendo "implementa", al menos todas las funciones de ECMA-262 v3 están disponibles. Son libres de agregar otras funciones, incluida la que usted mencionó. – syockit

10

He aquí una sencilla función Javascript 1.6 Chrome (y V8 usuarios, como Node.js) no se ejecutarán: for each … in

for each (variable in object) 
    statement 

Como es JS 1.5 (por respuesta de J c) es la única versión de Chrome afirma implementar completamente.

De hecho, el equipo de Chrome ha apuntado en su mayoría a la compatibilidad con Safari (el usuario de Webkit más destacado en ese momento), y ha rechazado las funciones por ese motivo.

+0

Muy buen punto. – CDR

+1

No compatible con Chrome 16.0. Perdió una hora preguntándose por qué el código no funcionaba ... – SabreWolfy

+0

No está utilizando forEach correctamente. Compruebe la sintaxis aquí: http://robertnyman.com/javascript/javascript-1.6.html – Case

4

Este es un hilo antiguo, sin embargo aquí va. Google Chrome no responde a la siguiente

function foo(){ 
    let a = 4; 
    alert(a); 
} 
foo(); 

por lo tanto, no es compatible con JavaScript 1.7

+0

hay un par de otras cosas con las que tuve problemas en javascript 1.7 en Chrome, como incluso acceder a variables globales y tal – user151496

17

Este hilo sigue siendo relevante. A partir de 2012, Chrome es compatible con la mayoría de Javascript 1.6, sin incluir genéricos de cadena y matriz. No admite nada de 1.7. Admite reducir y reducir Derecho desde 1.8, todos de 1.8.1, y Getters y setters y todos los elementos no relacionados con la versión enumerados en this page. Esta página está vinculada desde Mozilla Developer Network, que especifica las versiones de javascript, encontrado here.

Cuestiones relacionadas