--- title: 予約語 slug: Web/JavaScript/Reference/Reserved_Words tags: - JavaScript translation_of: Web/JavaScript/Reference/Lexical_grammar#Keywords translation_of_original: Web/JavaScript/Reference/Reserved_Words ---

以下は予約語であり、変数、関数、メソッド、あるいはオブジェクトの識別子として用いることはできません。以下は ECMAScript の仕様で既存のキーワードとして予約されているものです。

将来の使用を見越した予約語

以下は ECMAScript の仕様で将来のキーワードとして予約されているものです。現在は特別な機能を持っていませんが、将来機能を持つときのために、識別子として使用できません。このキーワードは、厳格モード、非厳格モードの両方で使用できません。

注記: Firefox 5 (JavaScript 1.8.6) より以前では、これらのキーワードは厳格モードでないときには使用できました。この ECMAScript 違反は Firefox 5 で修正されました。

以下は 厳格モードのコード として実行されたときに 、ECMAScript の仕様で将来のキーワードとして 予約されているものです。ただし、JavaScript 1.7 以上では letyield は伝統的な Mozilla 特有の機能を持っています。

const は ECMAScript の仕様によって将来のキーワードとして予約されていますが、Mozilla やほとんどの他のブラウザが非標準の拡張として実装していることに注意してください。さらに、 exportimport はかつて Mozilla で実装されていましたが、現在では予約語となっています。

加えて、 nulltruefalse リテラルは ECMAScript の仕様で予約されています。

予約語の利用

実際に、予約語は識別子のみに適用されます。es5.github.com/#A.1 の記述にあるように、これらは全て予約語を排除しない識別名です。

a.import
a["import"]
a = { import: "test" }.

反対に、以下は識別子であるので違反です。識別子は関数宣言や関数式に使用されます。

function import() {}