Кавычки свойств объекта Javascript [дубликат]

этот вопрос уже есть ответ здесь:

скажем, у меня есть следующий объект:

var VariableName = {
    firstProperty: 1,
    secondProperty: 2
}

должен ли я обернуть свойства объекта в кавычки, как это?

var VariableName = {
    'firstProperty': 1,
    'secondProperty': 2
}

это одинарные кавычки в JavaScript object literal правильный ответ?

4 ответов


нет, вам не нужно этого делать.

единственными причинами цитировать объекта-клавиши

  • имя свойства зарезервировано / используется браузером / JS engine (например. "класс" в IE)
  • у вас есть специальные символы или пробелы в ключ

например

var VariableName = {
    "some-prop": 42,  // needs quotation because of `-`
    "class": 'foobar' // doesn't syntatically require quotes, but it will fail on some IEs
    valid: 'yay' // no quotes required
};

вам нужно использовать кавычки только вокруг свойства, если имя свойства является зарезервированным словом (например, for, in, function,...). Таким образом, Вы не позволяете Javascript интерпретировать ключевое слово как часть языка и, скорее всего, получите синтаксическую ошибку. Кроме того, если вы хотите использовать пробелы в именах свойств, вы также должны использовать кавычки. Если ваши имена свойств являются обычными именами без возможности сговора или пробелов, вы можете использовать синтаксис, который предпочитаете.

один другая возможность, требующая кавычек, - использование JavaScript-минификаторов, таких как компилятор Google closure, поскольку он имеет тенденцию заменять все имена свойств. Однако если поместить имена свойств в кавычки, компилятор закрытия сохранит свойство в том виде, в котором оно было закодировано. Это имеет некоторое значение при экспорте объектов в библиотеку или использовании объекта параметра.


имена свойств в объектных литералах должны быть строками, числами или идентификаторами. Если имя является допустимым идентификатором, то кавычки не нужны, иначе они следуют тем же правилам, что и строки.

firstProperty и secondProperty являются допустимыми идентификаторами, поэтому вам не нужно цитат.

см. стр. 65 спецификация для получения более подробной информации.


для Javascript вам обычно не нужно использовать кавычки. Вы можете использовать ' или " если хотите, и вы должны использовать кавычки, если есть столкновение между именем вашей собственности и зарезервированным словом JS, таким как null. Ответ, с которым вы связались, кажется правильным, да.

для JSON, вы должны использовать " вокруг строки (включая имена свойств объекта)