Показать сообщение отдельно
  #11 (permalink)  
Старый 12.04.2020, 13:07
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Сообщение от voraa Посмотреть сообщение
В первом правиле говорится про токен-нарушитель. Тоесть нечто такое, что делает синтаксическую конструкцию недопустимой.

Но конструкция }[ - вполне допустима

Array.prototype.sum = function (...arguments){returnthis.reduce(arguments);}[1,2,3]

Мы описали какую то функцию. Функция - это объект. К объекту применима операция [] для получения свойства по имени.
[1,2,3] - тут используется операция ',', которая дает значение последнего из выражений (3)
Т.е приведенный выше пример пытается взять значение свойства с именем '3' у объекта функции. Такого нет, поэтому undefined/
Спасибо большое! Офигеть, конечно. Никогда бы не подумал, что это работает именно так.

Почему все тогда почти никогда не ставят точки с запятой после декларации функций? Эта ситуация настолько редкая? Почти все пишут так:

function foo(){
  return 3;
}

без точки с запятой после закрывающей фигурной скобки.

Последний раз редактировалось jaroslav.tavgen, 12.04.2020 в 13:13.
Ответить с цитированием