do ... while循环中无法理解的意外令牌错误

时间:2019-11-08 11:05:57

标签: vue.js ecmascript-6 do-loops

这也许是我第一次使用do...while循环。我不知道这是怎么回事:

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

do {行,我遇到一些unexpected token语法错误。为什么?

1 个答案:

答案 0 :(得分:0)

syntax for declaring a constant是:

const 标识符 = 初始化器

解析器希望在标识符(=)后看到等号randomLetter,但是却意外地看到了关键字do

因此,错误消息和错误位置正确:意外的令牌是关键字do,并且错误发生在令牌do

注意:根据解析器的不同,错误消息或多或少会有所帮助,例如我在Node.js 13.1.0 / V8 7.8中得到的:

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

SyntaxError: Missing initializer in const declaration

注意:这实际上与无关:不是等号=的任何内容都会触发类似的语法错误。

注意: 不可能与此有关,因为显然这是一种语法/解析错误,而ECMAScript(就像几乎所有语言,当然也包括所有主流语言)都没有允许库更改语言的基本语法。