Если ключ объекта не является числовым литералом или допустимым именем идентификатора, его необходимо заключать в кавычки, чтобы избежать появления синтаксической ошибки.Другими словами, кавычки могут быть опущены, только если имя свойства является числовым литералом или допустимым именем идентификатора.Конечно, если имя свойства является строковым литералом, оно уже указано по определению.
var object = {
// `abc` is a valid identifier; no quotes are needed
abc: 1,
// `123` is a numeric literal; no quotes are needed
123: 2,
// `012` is an octal literal with value `10` and thus isn’t allowed in strict mode; but if you insist on using it, quotes aren’t needed
012: 3,
// `π` is a valid identifier; no quotes are needed
π: Math.PI,
// `var` is a valid identifier name (although it’s a reserved word); no quotes are needed
var: 4,
// `foo bar` is not a valid identifier name; quotes are required
'foo bar': 5,
// `foo-bar` is not a valid identifier name; quotes are required
'foo-bar': 6,
// the empty string is not a valid identifier name; quotes are required
'': 7 };
Для получения дополнительной информации см. здесь