予約語は、JavaScriptがすでに特別な意味で使っている単語です。変数名・関数名には使えません。使うと Uncaught SyntaxError: Unexpected token などのエラーになります。
| 単語 | 説明 |
|---|---|
| break | くり返し・switch をそこで終わらせる |
| case | switch の中で、値ごとの処理を書く |
| catch | try で起きたエラーを受け取る |
| class | クラス(オブジェクトの設計図)を作る |
| const | あとで別の値を入れない変数を作る |
| continue | 今回の分を飛ばして、次のくり返しへ進む |
| debugger | ここで実行を一時停止する |
| default | switch で、どれにも当てはまらないとき |
| delete | オブジェクトの項目を消す |
| do | do...while。先に1回実行してから条件を調べる |
| else | if の条件が成り立たないとき |
| enum | 今は使えないが、将来のために予約されている |
| export | 別のファイルへ機能を公開する |
| extends | クラスを引き継ぐ |
| false | 正しくない(真偽値) |
| finally | try / catch のあと、最後に必ず実行する |
| for | 決まった回数くり返す |
| function | 処理に名前を付けてまとめる(関数) |
| if | 条件で処理を分ける |
| import | 別のファイルの機能を読み込む |
| in | オブジェクトにその名前があるか調べる。for...in で使う |
| instanceof | あるクラスから作られたものか調べる |
| new | オブジェクトを新しく作る |
| null | 「何も入っていない」ことを表す値 |
| return | 関数の結果を返して、関数を終わる |
| super | 引き継ぎ元のクラスを呼び出す |
| switch | 値によって処理を分ける |
| this | いま処理しているもの自身を指す |
| throw | エラーを自分で起こす |
| true | 正しい(真偽値) |
| try | エラーが起きるかもしれない処理を囲む |
| typeof | 値の種類(型)を調べる |
| var | 古い書き方の変数。今は const / let を使う |
| void | 式の結果を捨てて undefined にする |
| while | 条件が成り立つあいだくり返す |
| with | 使わない。古い書き方で、問題が多い |
| yield | ジェネレータ関数で値を順に返す |
| await | 非同期処理の完了を待つ |
クラスやモジュールの中など、厳格モード(strict mode)では次の単語も予約語になります。最初から使わないほうが安全です。
| 単語 | 説明 |
|---|---|
| let | あとで値を変える変数を作る。厳格モードでは予約語 |
| static | クラスの中で、クラス自身に付ける項目を作る |
| implements / interface / package / private / protected / public | 他の言語で使う単語。JavaScriptでは将来のために予約されているだけ |
| 単語 | 説明 |
|---|---|
| undefined / NaN / Infinity | JavaScriptが用意している特別な値 |
| window / document / location / top | ブラウザが用意している部品。const / let で同じ名前を作るとエラーになる |
| name / event / status / length | もともと持っている名前。変数名にすると、意図しない動きになることがある |
| Math / Date / Array / Object / String / Number / JSON / console | 標準の部品。同じ名前を作ると、本来の機能が使えなくなる |
名前に説明を足して、2語以上で書きます。class → className、new → newItem、default → isDefault のようにします。
obj.class のようにドットの後ろなら予約語も使えますが、変数名としては使えません。