MENU

JavaScript構文

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

更新日:2020/06/10

 

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

 

そこで、

 

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

 

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

 

予約語一覧

 

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

 

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

 

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

 

【機能を持っている予約語】
予約語 予約語 予約語 予約語
await break case catch
class const continue debugger
default delete do else
export extends finally for
function if import in
instanceof new return super
switch this throw try
typeof var void while
with yield

 

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

 

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

 

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

 

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

 

【将来的にstrictモードでの使用を予定している予約語】
予約語 予約語 予約語 予約語
implements interface package private
protected public

 

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

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

 

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

 

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

 

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

 

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

 

 

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

 

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

 

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

 

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

まとめ

 

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

 

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

最後までお読みいただきありがとうございます

記事の内容について

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


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

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

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

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

【お願い】

お願い

■このページのURL


■このページのタイトル


■リンクタグ


※リンクして頂いた方でご希望者には貴サイトの紹介記事を作成してリンクを設置します。
サイト上部の問い合わせよりご連絡ください。
ただしサイトのジャンルによっては、お断りさせていただくことがあります。