@uroot

Почему если ключ объекта в кавычках, то он может содержать дефис, а если без, то уже нет?

Просто стало интересно почему так исторически сложилось. Ведь в любом случае это строка. Но так можно писать:

const ICONS: = {
  'tg-bot': <img />
}


А так уже нет:
const ICONS: = {
  tg-bot: <img />
}


Почему так, а не иначе? :)
  • Вопрос задан
  • 354 просмотра
Решения вопроса 2
Akdmeh
@Akdmeh
PHP, Yii2, Music
Потому что парсер не может понять, что вы хотите - от переменной tg отнять переменную bot, или это строка с дефисом по середине.
Он может "догадаться", но все же обычно это неоднозначное прочтение кода, поэтому он перестраховывается.
Ответ написан
Комментировать
Lynn
@Lynn
nginx, js, css
> Ведь в любом случае это строка
Нет.

Во втором случае это должен быть «идентификатор», а идентификатор не может содержать дефисы. Так же как и а именах переменных и т.п.

Вас же не удивляет что нельзя объявить переменную let tg-bot = 42;

P.S. Хотя есть языки в которых можно использовать дефис в именах переменных…
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы