SyntaxError: "x" is a reserved identifier

メッセージ

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

エラーの種類

何がうまくいかなかったのか?

予約語を識別子として使用した場合、エラーをスローします。これらは strict モードと通常モードの双方で予約されています:

  • enum

次のものは strict モードのコードでのみ予約されています:

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

Strict モードと 非 Strict モードで予約されているキーワード

enum 識別子は全般的に予約されています。

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

strict モードのコードでは、より多くの識別子が予約されています。

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"];

古いブラウザーを更新する

たとえば、letclass をまだ実装していない古いブラウザーを使用している場合、それらの新しい言語機能をサポートしているより新しいブラウザーにアップデートすべきです。

js
"use strict";
class DocArchiver {}

// SyntaxError: class is a reserved identifier
// (たとえば、Firefox 44 以前の古いブラウザーはエラーをスローします)

関連項目