首页 > 解决方案 > do...while 循环中出现不可理解的意外令牌错误

问题描述

这可能是我第一次使用do...while循环。我无法弄清楚它有什么问题:

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

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

标签: vue.jsecmascript-6do-loops

解决方案


声明常量的语法是:

const 标识符 = 初始化器

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

因此,错误消息和错误位置是正确的:意外标记是关键字do,错误发生在标记处do

注意:取决于解析器,错误消息或多或少有帮助,例如我在Node.js 13.1.0 / V8 7.8中得到这个:

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

SyntaxError: Missing initializer in const declaration

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

注意: 不可能与此有关,因为它显然是一个语法/解析错误,并且 ECMAScript(就像几乎所有语言,当然还有所有主流语言一样)不允许库更改语言的基本语法。


推荐阅读