2010-05-07 5 views

ответ

7

Хорошая практика заключается в том, чтобы обернуть ключи в кавычки, хотя это и не требуется строго, во избежание конфликтов с JavaScript reserved words.

Представьте, что у вас было class вместо modules - class является зарезервированным словом в JavaScript, хотя оно фактически не используется в текущей спецификации.

+0

спасибо. , , , , – stone

+3

@stone, если вы довольны ответом Даниэля, вы должны принять его, нажав зеленую галочку слева. – kazanaki

+0

@ MathiasBynens: Я не собирался говорить, что зарезервированные работы являются недопустимыми именами идентификаторов. Только то, что часто считают хорошей практикой обернуть ключ в кавычки (особенно для обратной совместимости с ES3). –

1

Фактически, в большинстве реализаций JSON (потому что это на самом деле строка JSON), как и jQuery's getJSON, обязательно нужно поместить все строки, представляющие значения или свойства, в двойные кавычки.

+4

«Двойные кавычки» - это правильный путь для JSON, поскольку они являются обязательными в спецификации JSON. – Boldewyn

+0

@Boldewyn: Спасибо, я отредактировал свой ответ. –

0

Это не требуется если:

  1. Свойство не совпадает с именем в качестве ключевого слова/зарезервирован
  2. Свойство имеет специальные символы
  3. Объект предназначен для использования в качестве JSON
1

The currently accepted answer неверно - зарезервированные слова являются действительными именами идентификаторов, поэтому они разрешены как имена недопустимых имен в Java Сценарий.

Unquoted property names/object keys in JavaScript С, моя рецензия на эту тему:

Котировки могут быть опущены, если имя свойства числовой литерал или a valid identifier name.

[...]

Кронштейн обозначение может безопасно использоваться для всех имен свойств.

[...]

Dot нотации может использоваться только тогда, когда имя свойства является правильным именем идентификатора.

Я также сделал инструмент, который расскажет вам, можно ли использовать какое-либо имя свойства без кавычек и/или с точечной нотацией. Попробуйте это на mothereff.in/js-properties.

Screenshot

Смежные вопросы