Come dimostrato in this jsfiddle, se si dispone di un file JS e si crea un oggetto JSON senza usarlo, si comporta diversamente a seconda che le chiavi (membri) siano avvolte in citazioni o no.Comportamento di parsing JSON strano in js, "Token inaspettato:"
codice valido: { a: 1};
codice non valido: { "a": 1 };
Quello che si ottiene è un messaggio di errore (in Chrome, diverso per FF/IE, ma non riesce ancora sulla sintassi)
Uncaught SyntaxError: Unexpected token :
ma se si utilizza l'oggetto in qualche modo, ad esempio: alert({ "a": 1 });
, tutto torna a essere OK.
Perché succede?
ma assegnarlo a una variabile lo rende un oggetto letterale? – karnyj
Sì, perché non c'è ambiguità. – Pointy
javascript internals sono davvero qualcosa :) grazie – karnyj