JavaScript アプリケーションは、適切な構文で書かれた文から構成されます。ひとつの文が数行に渡る場合もあります。また複数の文それぞれがセミコロンで区切られていれば 1 行となる場合もあります。そのキーワードはひとつではなく、キーワードのグループとなっています。
文と宣言(カテゴリ別)
アルファベット順リストは左サイドバーで確認できます。
制御フロー
- ブロック
- ブロック文は 0 個以上の文をグループ化するのに使います。ブロックは 1 組の波括弧で囲みます。
break
- 現在実行中のループ、
switch
による分岐、あるいはラベル文を終了し、その終了した文に続く文へとプログラムの制御を移行します。 continue
- 現在実行中のループ、またはラベル付きループで現在反復している文の実行を終了し、そのループの実行を次の反復から継続します。
- 空文
- 空文は、文が必要ないが JavaScript の文法上 1 つの文が必要な場合に使います。
if...else
- 与えられた条件が真の場合はある文を実行します。条件が偽の場合はまた別の文を実行できます。
switch
- ある式を評価し、式の値をケース節と照らし合わせ、ケース節に関連付けられた文を実行します。
throw
- ユーザー定義の例外をスローします。
try...catch
- 実行を試み、例外がスローされた際に行うべき処理を規定する文のブロックを記述します。
宣言
var
- 変数を宣言し、その変数をある値に初期化することもできます。
let
- ブロックスコープを持つ局所変数を宣言し、その変数をある値に初期化することもできます。
const
- 読み取り専用の名前付き定数を宣言します。
関数とクラス
function
- 特定の仮引数を持つ関数を宣言します。
function*
- イテレータをより簡単に書けるジェネレータ関数です。
async function
- 指定したパラメーターの非同期関数を定義します。
return
- 関数によって返される値を指定します。
class
- クラスを宣言します。
反復処理
do...while
- テスト条件が偽と評価されるまで指定された文を実行するループを作成します。この条件は文が実行されたあとに評価され、その結果少なくとも 1 回は指定された文が実行されます。
for
- 丸括弧で囲まれ、セミコロンで区切られた 3 つの式と、それに続くループ内で実行される文から構成されるループを作成します。
-
for each...in
- オブジェクトプロパティの全ての値を、指定した変数を通して反復処理を行います。それぞれ個別のプロパティに対し、指定した文が実行されます。
for...in
- オブジェクトの列挙可能なプロパティに対し任意の順番で反復処理を行います。それぞれ個別のプロパティに対し、文を実行できます。
for...of
- 反復可能オブジェクト(配列、配列様のオブジェクト、イテレータとジェネレータを含む)を反復処理し、それぞれ個別のプロパティの値に対する実行文をともなった反復処理フックを呼び出します。
while
- テスト条件が真と評価される間、指定した文を実行するループを作成します。この条件は文が実行される前に評価されます。
その他
debugger
- 利用可能なデバッグ機能を呼び出します。利用可能なデバッグ機能がない場合、この文は無効となります。
export
- 外部モジュールや別のスクリプトでインポートできるように、関数をエクスポートするのに使われます。
import
- 外部モジュールや別のスクリプトからエクスポートされる関数をインポートするのに使われます。
label
break
やcontinue
文を使う際に参照できる識別子を含む文を用意します。
-
with
- 文のスコープチェーンを拡張します。
仕様
仕様 | 策定状況 | コメント |
---|---|---|
ECMAScript 1st Edition (ECMA-262) Statements の定義 |
標準 | 初期定義。 |
ECMAScript 3rd Edition (ECMA-262) Statements の定義 |
標準 | |
ECMAScript 5.1 (ECMA-262) Statements の定義 |
標準 | |
ECMAScript 2015 (6th Edition, ECMA-262) ECMAScript Language: Statements and Declarations の定義 |
標準 | 新規定義 : function*, let, for...of, yield, class |
ECMAScript Latest Draft (ECMA-262) ECMAScript Language: Statements and Declarations の定義 |
ドラフト |
ブラウザ実装状況
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
デスクトップ | モバイル | サーバー | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Legacy generator function | Chrome 未対応 なし | Edge 未対応 なし | Firefox 未対応 2 — 58 | IE 未対応 なし | Opera 未対応 なし | Safari 未対応 なし | WebView Android 未対応 なし | Chrome Android 未対応 なし | Firefox Android 未対応 4 — 58 | Opera Android 未対応 なし | Safari iOS 未対応 なし | Samsung Internet Android 未対応 なし | nodejs 未対応 なし |
async function | Chrome 完全対応 55 | Edge 完全対応 15 | Firefox 完全対応 52 | IE 未対応 なし | Opera 完全対応 42 | Safari 完全対応 10.1 | WebView Android 完全対応 あり | Chrome Android 完全対応 55 | Firefox Android 完全対応 52 | Opera Android 完全対応 42 | Safari iOS 完全対応 10.3 | Samsung Internet Android 完全対応 6.0 | nodejs
完全対応
7.6.0
|
block | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 11 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
break | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
class | Chrome
完全対応
49
| Edge 完全対応 13 | Firefox 完全対応 45 | IE 未対応 なし | Opera 完全対応 36 | Safari 完全対応 10.1 | WebView Android
完全対応
49
| Chrome Android
完全対応
49
| Firefox Android 完全対応 45 | Opera Android ? | Safari iOS 完全対応 10.3 | Samsung Internet Android
完全対応
4.0
| nodejs 完全対応 6.0.0 |
const | Chrome 完全対応 21 | Edge 完全対応 12 | Firefox
完全対応
36
| IE 完全対応 11 | Opera 完全対応 あり | Safari 完全対応 5.1 | WebView Android 完全対応 あり | Chrome Android 完全対応 25 | Firefox Android
完全対応
36
| Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 あり | nodejs 完全対応 あり |
continue | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
debugger | Chrome 完全対応 5 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 4 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
do...while | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 4 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
Empty statement (; ) | Chrome 完全対応 3 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
export | Chrome 完全対応 61 | Edge
完全対応
16
| Firefox
完全対応
60
| IE 未対応 なし | Opera 完全対応 47 | Safari 完全対応 10.1 | WebView Android 未対応 なし | Chrome Android 完全対応 61 | Firefox Android
完全対応
60
| Opera Android 完全対応 44 | Safari iOS 完全対応 10.3 | Samsung Internet Android 完全対応 8.0 | nodejs ? |
for | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
for await...of | Chrome 完全対応 63 | Edge 未対応 なし | Firefox 完全対応 57 | IE 未対応 なし | Opera 完全対応 50 | Safari 完全対応 11 | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 57 | Opera Android 完全対応 46 | Safari iOS ? | Samsung Internet Android 完全対応 8.0 | nodejs
完全対応
10.0.0
|
for each...in | Chrome 未対応 なし | Edge 未対応 なし | Firefox 未対応 1.5 — 57 | IE 未対応 なし | Opera 未対応 なし | Safari 未対応 なし | WebView Android 未対応 なし | Chrome Android 未対応 なし | Firefox Android 未対応 4 — 57 | Opera Android 未対応 なし | Safari iOS 未対応 なし | Samsung Internet Android 未対応 なし | nodejs 未対応 なし |
for...in | Chrome 完全対応 49 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 6 | Opera 完全対応 36 | Safari 完全対応 あり | WebView Android 完全対応 49 | Chrome Android 完全対応 49 | Firefox Android 完全対応 4 | Opera Android 完全対応 36 | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 5.0 | nodejs 完全対応 あり |
for...of | Chrome 完全対応 38 | Edge 完全対応 12 | Firefox
完全対応
13
| IE 未対応 なし | Opera 完全対応 25 | Safari 完全対応 8 | WebView Android 完全対応 38 | Chrome Android 完全対応 38 | Firefox Android
完全対応
14
| Opera Android 完全対応 25 | Safari iOS 完全対応 8 | Samsung Internet Android 完全対応 あり | nodejs 完全対応 あり |
function | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
function* | Chrome 完全対応 39 | Edge 完全対応 13 | Firefox 完全対応 26 | IE 未対応 なし | Opera 完全対応 26 | Safari 完全対応 10 | WebView Android 完全対応 あり | Chrome Android 完全対応 39 | Firefox Android 完全対応 26 | Opera Android 完全対応 あり | Safari iOS 完全対応 10 | Samsung Internet Android 完全対応 4.0 | nodejs
完全対応
4.0.0
|
if...else | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
import | Chrome 完全対応 61 | Edge
完全対応
16
| Firefox
完全対応
60
| IE 未対応 なし | Opera 完全対応 47 | Safari 完全対応 10.1 | WebView Android 完全対応 61 | Chrome Android 完全対応 61 | Firefox Android
完全対応
60
| Opera Android 完全対応 44 | Safari iOS 完全対応 10.3 | Samsung Internet Android 完全対応 8.0 | nodejs
完全対応
8.5.0
|
import.meta | Chrome 完全対応 64 | Edge 未対応 なし | Firefox 完全対応 62 | IE 未対応 なし | Opera 完全対応 51 | Safari 完全対応 11.1 | WebView Android 完全対応 64 | Chrome Android 完全対応 64 | Firefox Android 完全対応 62 | Opera Android 完全対応 47 | Safari iOS 完全対応 12 | Samsung Internet Android 完全対応 9.0 | nodejs ? |
label | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 4 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
let | Chrome
完全対応
49
| Edge
完全対応
14
| Firefox
完全対応
44
| IE
部分対応
11
| Opera 完全対応 17 | Safari 完全対応 10 | WebView Android
完全対応
49
| Chrome Android
完全対応
49
| Firefox Android
完全対応
44
| Opera Android 完全対応 18 | Safari iOS 完全対応 10 | Samsung Internet Android
完全対応
5.0
| nodejs 完全対応 6.0.0 |
return | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
switch | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 4 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
throw | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
try...catch | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
var | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
while | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
with | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
凡例
- 完全対応
- 完全対応
- 部分対応
- 部分対応
- 未対応
- 未対応
- 実装状況不明
- 実装状況不明
- 実験的。動作が変更される可能性があります。
- 実験的。動作が変更される可能性があります。
- 非標準。ブラウザー間の互換性が低い可能性があります。
- 非標準。ブラウザー間の互換性が低い可能性があります。
- 非推奨。新しいウェブサイトでは使用しないでください。
- 非推奨。新しいウェブサイトでは使用しないでください。
- 実装ノートを参照してください。
- 実装ノートを参照してください。
- ユーザーが明示的にこの機能を有効にしなければなりません。
- ユーザーが明示的にこの機能を有効にしなければなりません。