Estranho comportamento de análise de JSON em js, “Token inesperado:”
Como demonstrado emeste jsfiddle, se você tiver um arquivo JS e criar um objeto JSON sem usá-lo, ele se comportará de maneira diferente, dependendo de as chaves (membros) estarem ou não entre aspas.
código válido:{ a: 1};
Código inválido:{ "a": 1 };
O que você vai conseguir é uma mensagem de erro (no Chrome, diferente para FF / IE, mas ainda falha na sintaxe)
Untaught SyntaxError: Token inesperado:
mas se você usar o objeto de alguma forma, por exemplo:alert({ "a": 1 });
tudo está bem novamente.
Por que isso acontece?