titulo pagina modificar con cambiar javascript

pagina - Soporte del navegador para usar una palabra reservada como nombre de propiedad en JavaScript



cambiar titulo de pagina con jquery (4)

Estoy tratando de usar "for" como un nombre de propiedad de objeto. Parece funcionar bien en IE7, IE8, Firefox, Chrome y Opera, pero aparentemente no en Safari.

Según tengo entendido, ECMAScript 5 lo permite (como se explica en las palabras clave de JavaScript en las claves hash ).

¿Puedo obtener una lista definitiva de navegadores que admitan / no admitan esto en alguna parte?

EDITAR: En realidad, la auto-stringificación de CoffeeScript de los nombres de propiedades de palabras reservadas es lo que me hizo creer que funciona. Después de volver a realizar las pruebas correctamente, no parece funcionar en ninguna parte, por lo que la pregunta ahora es: ¿hay algún navegador que lo permita según la especificación ECMAScript 5?


Hay una tabla que muestra el soporte del navegador para las características de ECMAScript 5 aquí: http://kangax.github.com/es5-compat-table/

Las palabras reservadas se pueden usar como nombres de propiedades en IE9, Firefox 3.5+ y Chrome 7+, Safari 5.1+.


Puedes usar esas palabras, pero solo como cadenas y no como propiedades abreviadas.

foo[''class'']; // cool foo.class; // not cool

Pero aquí está la lista real que solicitó. Ninguno de estos se puede utilizar a través de la sintaxis de puntos de propiedad. https://web.archive.org/web/20140902235313/http://javascript.about.com/library/blreserved.htm

Además, solo un poco tangencial, CoffeeScript se da cuenta de esto y las trama automáticamente para usted. http://jashkenas.github.com/coffee-script/#literals

Entrada:

$(''.account'').attr class: ''active'' log object.class

JS Ouptput:

$(''.account'').attr({ "class": ''active'' }); log(object["class"]);

Resulta que creo que eso es bastante peligroso.


Quizás la pregunta no sea tanto si las palabras reservadas se pueden usar como nombres de propiedades para objetos, sí pueden. Parece que la verdadera pregunta aquí es si se pueden usar desnudos (es decir, sin estar entre comillas). El uso desnudo de palabras reservadas es compatible desde ES5 en adelante, pero no todos los intérpretes son compatibles con las características de ES5 todavía. Como se mencionó, hay una buena mesa aquí ...

http://kangax.github.io/es5-compat-table/#Reserved%20words%20as%20property%20names

Si solo estás haciendo un poco de codificación en NodeJS, entonces no tienes que preocuparte por este tipo de problema. Si le importa la portabilidad de su código a una amplia variedad de entornos (sin usar un lenguaje como CoffeeScript que compila JavaScript), entonces su código debe citar las palabras reservadas ...

definiendo ...

var foo = {''for'':''this works''};

accediendo ...

foo [''for''];


después del estudio, creo que puedo probar que el uso de palabras reservadas como nombres de propiedades (si se hace con un poco de sentido común) es inofensivo, ya sea en la sintaxis obj[''name''] o obj.name .

ver esta pregunta de