このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

SyntaxError: "x" is a reserved identifier

JavaScript の例外 "variable is a reserved identifier" は、予約キーワードが識別子として使用されている場合に発生します。

エラーメッセージ

SyntaxError: Unexpected reserved word (V8-based)
SyntaxError: implements is a reserved identifier (Firefox)
SyntaxError: Cannot use the reserved word 'implements' as a variable name. (Safari)

エラー型

SyntaxError

エラーの原因

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

  • enum

次のものは厳格モードのコードでのみ予約されています。

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

例

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

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

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

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

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

これらの変数名を変更する必要があります。

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

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

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

js
"use strict";
class DocArchiver {}

// SyntaxError: class is a reserved identifier
// (Firefox 44 以前など、古いブラウザーではエラーが発生します)

関連情報