構文

【JavaScript】 予約語一覧と使用できるパターン

更新日:2020/06/10

予約語とは何らかの意味を持っているキーワードです。
そのため変数名や関数名などの識別子として使用できません。

そこで、

  • どんなキーワードが予約後なのか
  • どんなケースで使用できないのか
  • どんなケースで使用できるのか

という点についてお伝えします。

 

予約語一覧

JavaScriptの予約語は、ECMAScriptで定義されています。
参考記事:【JavaScript】 ECMAScriptってなに?
参考記事:【JavaScript】 ECMAScript(ECMA-262)仕様書へのリンク

ECMAScriptは版数を重ねるごとに内容が大きく変化しています。
それに伴い、予約語ではなくなったものや、新たに予約語となったものがあります。

ECMAScriptの2020年6月時点でのDraft版では、次のキーワードが予約語として挙げられています。

【機能を持っている予約語】
予約語予約語予約語予約語
awaitbreakcasecatch
classconstcontinuedebugger
defaultdeletedoelse
exportextendsfinallyfor
functionifimportin
instanceofnewreturnsuper
switchthisthrowtry
typeofvarvoidwhile
withyield

今のところ await と yield はモジュール内で予約語として扱われます。
しかし、モジュール以外でも使用しない方が無難です。

現在は意味を持っていませんが将来的な使用を見越して、いくつかのキーワードが予約されています。

【将来的に使用を予定している予約語】
予約語予約語予約語予約語
enum

下の表はstrictモード時の予約語です。

【将来的にstrictモードでの使用を予定している予約語】
予約語予約語予約語予約語
implementsinterfacepackageprivate
protectedpublic

非strictモードで使用可能ですが、言語仕様としてstrictモードに置き換えていく流れがあるため、使用しない方がよいでしょう。

 

予約語を使用できないケース

予約語は変数名として使用できません。

let with = 2;
// SyntaxError: unexpected token: keyword 'with'

予約語は関数名として使用できません。

function break(){ };
// SyntaxError: unexpected token: keyword 'break'

 

予約語を使用できるケース

予約語は、次のように使用した場合エラーになりません。

オブジェクトのプロパティ名として使用する。

const a = { return : 1};
a["instanceof"] = 5

 

まとめ

一部の予約語は条件によっては予約語として扱わないなど、かなり難解な状況となっています。

それをすべて理解して使い分けるよりも、全ての予約語を名前として使用しない方が楽ですね。

更新日:2020/06/10

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。