SyntaxError: "x" is a reserved identifier

消息提示

SyntaxError: "x" is a reserved identifier (Firefox)
SyntaxError: Unexpected reserved word (Chrome)

错误类型

哪里出错了?

保留字 用作标记符将会出错。这些标记符在严格模式和非严格模式下保留:

  • enum

以下标记符只会在严格模式下才作为保留字:

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static

示例

严格与非严格模式下的保留字

在两种模式下,enum 标识符都会作为保留字。

js
var enum = { RED: 0, GREEN: 1, BLUE: 2 };
// SyntaxError: enum is a reserved identifier

在严格模式下,会有更多的保留字。

js
"use strict";
var package = ["potatoes", "rice", "fries"];
// SyntaxError: package is a reserved identifier

你需要对上述变量重新命名。

js
var colorEnum = { RED: 0, GREEN: 1, BLUE: 2 };
var list = ["potatoes", "rice", "fries"];

升级旧版本浏览器

假如你还在使用尚未支持 let 或 class 等特性的旧版本浏览器,你应该将它们升级到支持这些新语言特性的版本。

js
"use strict";
class DocArchiver {}

// SyntaxError: class is a reserved identifier
//(只会在旧版本浏览器中抛出,例如 Firefox 44 或更老的版本)

相关内容