Javascript - Есть ли разница в написании имени свойства внутри кавычек и прямой? - PullRequest
0 голосов
/ 10 октября 2018

Я вижу, что часть кода в моем приложении имеет следующий способ создания объектов:

let request = {
  'name' : this.form.value.name
};

Я предпочитаю давать имя свойства без кавычек, например,

let request = {
 name : this.form.value.name
}

, которыйправильно и есть ли различия?

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

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

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 };

Для получения дополнительной информации см. здесь

0 голосов
/ 10 октября 2018

Нет разницы в коде, который вы предоставили, но в целом Да, есть разница.

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

Действительный идентификатор в JavaScript

Если вы не перенесете ключ, который не является допустимым идентификатором, вы получите unexpected identifier синтаксическую ошибку, как показано в следующем фрагменте.

let request = {
  'name': 'with quotes',
  'key code': 'with quotes',
};
let request1 = {
  name: 'without quotes',
  key code: 'with quotes',
};
console.log(request);
console.log(request1);
0 голосов
/ 10 октября 2018

Цитаты не являются обязательными в JavaScript.Хотя есть небольшая разница

  • Вам нужны кавычки для поддержки пробелов в ключе

    {"пробел": 2}

  • Вам нужны кавычки для ключа, который является зарезервированным ключевым словом javascript (ES6 допускает зарезервированные ключевые слова)

    {"this": 2}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...