Como se demuestra en this jsfiddle, si tiene un archivo JS y se crea un objeto JSON sin usarlo, se comporta de manera diferente, dependiendo de si las teclas (miembros) están envueltos en citas o no.extraño JSON comportamiento de análisis en JS, "símbolo inesperado:"
código válido: { a: 1};
código no válido: { "a": 1 };
Lo que se obtiene es un mensaje de error (en Chrome, diferentes para FF/IE, pero todavía falla en la sintaxis)
Uncaught SyntaxError: Unexpected token :
sino si usa el objeto de alguna manera, por ejemplo: alert({ "a": 1 });
todo está bien de nuevo.
¿Por qué sucede esto?
pero asignándolo a var lo convierte en un objeto literal? – karnyj
Sí, porque no hay ambigüedad. – Pointy
javascript internals son realmente algo :) gracias – karnyj