Непонятная неожиданная ошибка токена в цикле do ... while - PullRequest
0 голосов
/ 08 ноября 2019

Возможно, я впервые использую цикл do...while. Я не могу понять, что с ним не так:

const randomLetter
do {  
  randomLetter = String.fromCharCode(97 + 26 * Math.random() | 0)
} while (state.lettersFound.includes(randomLetter))

В строке do { я получаю некоторую unexpected token синтаксическую ошибку. Почему?

1 Ответ

0 голосов
/ 08 ноября 2019

Синтаксис для объявления константы :

const Идентификатор = Инициализатор

синтаксический анализатор ожидает увидеть знак равенства = после идентификатора (randomLetter), но вместо этого он неожиданно видит ключевое слово do.

Итак, сообщение об ошибке и местоположение ошибки правильное:неожиданным токеном является ключевое слово do, и ошибка возникает в токене do.

Примечание: в зависимости от парсера сообщение об ошибке более или менее полезно, например, я получаю его в узле.js 13.1.0 / V8 7.8 :

Thrown:
const randomLetter
      ^^^^^^^^^^^^

SyntaxError: Missing initializer in const declaration

Примечание: это не совсем о : что-нибудь это не знак равенства = вызовет аналогичную синтаксическую ошибку.

Примечание: не может иметь какое-либо отношение к этому, так какэто явно синтаксическая ошибка / синтаксический анализ, и ECMAScript (как почти все языки и, конечно, все основные языки) не позволяет библиотекамизменить основной синтаксис языка.

...