Skip to content

SyntaxError:意外的标记

错误信息

                Unexpected token 'x'
              

快速摘要

代码里某个位置的符号不符合 JS 语法——可能是少了个括号、多了个逗号,或 JSX/JSON 里用了单引号。

为什么发生

  • 括号、引号或花括号未配对,解析器在后续位置遇到意外符号

  • JSON 里用了单引号或带尾逗号,JSON 只允许双引号且不能有尾逗号

  • JSX 写法在没配置 Babel 的 .js 文件里使用

  • 异步函数漏写 async 关键字却用了 await

最小示例

✗ 错误代码
const arr = [1, 2 3];
✓ 修复代码
const arr = [1, 2, 3];

23 之间少了一个逗号——解析器在期待逗号或右括号的位置遇到了 3,于是抛出 SyntaxError。补上逗号即可。

如何诊断

  • 阅读错误信息,记下意外的标记和它的行号、列号

  • 检查该位置以及前几行的括号、引号是否配对

  • 如果是 JSON,确认用了双引号、无尾逗号

如何修复

  • 补上缺失的括号、引号或分号

  • 把 JSON 里的单引号改成双引号,去掉尾逗号

  • 在含 JSX 的文件里使用 .jsx 扩展名或配置 Babel

如何预防

  • 使用带语法高亮和括号匹配的编辑器

  • 启用 ESLint 和 Prettier 自动捕获格式问题

相关资源

相关术语

相关课程

相关练习

相关工具

← 返回语言