MDN のこの JavaScript セクションは、JavaScript 言語についての情報倉庫となっています。 詳しくはこのリファレンスについてを読んでください。
グローバルオブジェクト
この章では、JavaScript の標準ビルトインオブジェクト、そのメソッドとプロパティについて説明しています。
値プロパティ
これらのグローバルプロパティは、単なる値を返します。これらはプロパティもメソッドも持ちません。
関数プロパティ
これらのグローバル関数 (オブジェクト上ではなくグローバルに呼ばれる関数) は、呼び出し元に直接結果を返します。
eval()uneval()isFinite()isNaN()parseFloat()parseInt()decodeURI()decodeURIComponent()encodeURI()encodeURIComponent()escape()unescape()
基本オブジェクト
これらは、他のすべてのオブジェクトの基礎となる、主要な基本オブジェクトです。これらには、一般的なオブジェクト、関数、そしてエラーを表すオブジェクトが含まれます。
ObjectFunctionBooleanSymbolErrorEvalErrorInternalErrorRangeErrorReferenceErrorSyntaxErrorTypeErrorURIError
数と日付
これらは数、日付、数学計算を表す基本的なオブジェクトです。
テキスト処理
これらのオブジェクトは、文字列表現および文字列操作をサポートします。
索引付きコレクション
これらのオブジェクトは、インデックス値で順序付けされたデータのコレクションを表します。これには、(型付けされた) 配列や配列に似た構造体も含まれます。
ArrayInt8ArrayUint8ArrayUint8ClampedArrayInt16ArrayUint16ArrayInt32ArrayUint32ArrayFloat32ArrayFloat64Array
キー付きコレクション
これらのオブジェクトは、キーを使ったコレクションを表します。これらは、挿入順に反復可能な要素で構成されています。
ベクトルコレクション
SIMD ベクトルデータ型は、データがレーン状に配置されたオブジェクトです。
SIMDSIMD.Float32x4SIMD.Float64x2SIMD.Int8x16SIMD.Int16x8SIMD.Int32x4SIMD.Uint8x16SIMD.Uint16x8SIMD.Uint32x4SIMD.Bool8x16SIMD.Bool16x8SIMD.Bool32x4SIMD.Bool64x2
構造化データ
これらのオブジェクトは、構造化データバッファおよび JavaScript Object Notation (JSON) を用いて書かれたデータを表現、操作します。
制御抽象化オブジェクト
リフレクション
国際化
ECMAScript コアに追加された言語の扱いに影響する機能です。
非標準オブジェクト
その他
文
この章では、JavaScript の文と宣言について説明しています。
アルファベット順リストは左サイドバーで確認できます。
制御フロー
- ブロック
 - ブロック文は 0 個以上の文をグループ化するのに使います。ブロックは 1 組の波括弧で囲みます。
 break- 現在実行中のループ、
switchによる分岐、あるいはラベル文を終了し、その終了した文に続く文へとプログラムの制御を移行します。 continue- 現在実行中のループ、またはラベル付きループで現在反復している文の実行を終了し、そのループの実行を次の反復から継続します。
 - 空文
 - 空文は、文が必要ないが JavaScript の文法上 1 つの文が必要な場合に使います。
 if...else- 与えられた条件が真の場合はある文を実行します。条件が偽の場合はまた別の文を実行できます。
 switch- ある式を評価し、式の値をケース節と照らし合わせ、ケース節に関連付けられた文を実行します。
 throw- ユーザー定義の例外をスローします。
 try...catch- 実行を試み、例外がスローされた際に行うべき処理を規定する文のブロックを記述します。
 
宣言
var- 変数を宣言し、その変数をある値に初期化することもできます。
 let- ブロックスコープを持つ局所変数を宣言し、その変数をある値に初期化することもできます。
 const- 読み取り専用の名前付き定数を宣言します。
 
関数とクラス
function- 特定の仮引数を持つ関数を宣言します。
 function*- イテレータをより簡単に書けるジェネレータ関数です。
 return- 関数によって返される値を指定します。
 class- クラスを宣言します。
 
反復処理
do...while- テスト条件が偽と評価されるまで指定された文を実行するループを作成します。この条件は文が実行されたあとに評価され、その結果少なくとも 1 回は指定された文が実行されます。
 for- 丸括弧で囲まれ、セミコロンで区切られた 3 つの式と、それに続くループ内で実行される文から構成されるループを作成します。
 -     
for each...in - オブジェクトプロパティの全ての値を、指定した変数を通して反復処理を行います。それぞれ個別のプロパティに対し、指定した文が実行されます。
 for...in- オブジェクトの列挙可能なプロパティに対し任意の順番で反復処理を行います。それぞれ個別のプロパティに対し、文を実行できます。
 for...of- 反復可能オブジェクト(配列、配列様のオブジェクト、イテレータとジェネレータを含む)を反復処理し、それぞれ個別のプロパティの値に対する実行文をともなった反復処理フックを呼び出します。
 while- テスト条件が真と評価される間、指定した文を実行するループを作成します。この条件は文が実行される前に評価されます。
 
その他
debugger- 利用可能なデバッグ機能を呼び出します。利用可能なデバッグ機能がない場合、この文は無効となります。
 export- 外部モジュールや別のスクリプトでインポートできるように、関数をエクスポートするのに使われます。
 import- 外部モジュールや別のスクリプトからエクスポートされる関数をインポートするのに使われます。
 labelbreakやcontinue文を使う際に参照できる識別子を含む文を用意します。
-   
with - 文のスコープチェーンを拡張します。
 
式と演算子
この章では、JavaScript の式と演算子について説明しています。
アルファベット順リストは左側のサイドバーをご覧ください。
基本式
JavaScript の基本的なキーワードと一般的な式です。
thisthisキーワードは関数の実行コンテキストを参照します。functionfunctionキーワードは関数式を定義します。classclassキーワードはクラス式を定義します。function*function*キーワードはジェネレータ関数式を定義します。yield- ジェネレータ関数の一時停止と再開を行います。
 yield*- 別のジェネレータ関数または反復可能オブジェクトを代行します。
 []- 配列初期化子またはリテラル構文です。
 {}- オブジェクト初期化子またはリテラル構文です。
 /ab+c/i- 正規表現式のリテラル構文です。
 ( )- グループ化演算子です。
 
左辺式
左辺値は、代入の対象になります。
- プロパティアクセス演算子
 - プロパティアクセス演算子はオブジェクトのプロパティやメソッドへのアクセスを提供します
(object.propertyやobject["property"])。 newnew演算子はコンストラクタのインスタンスを作成します。- new.target
 - コンストラクタ内で 
new.targetを使うことで、newによって呼び出されるコンストラクタを参照できます。 supersuperキーワードは親コンストラクタを呼び出します。...obj- 展開演算子 (スプレッド演算子) は、式を複数の引数または複数の要素に展開して、それぞれ関数呼び出しまたは配列リテラルに渡します。
 
インクリメントとデクリメント
接尾/接頭辞のインクリメント演算子と接尾/接頭辞のデクリメント演算子です。
単項演算子
単項演算は、1 個のオペランドによる演算です。
deletedelete演算子は、オブジェクトからプロパティを削除します。voidvoid演算子は、式の戻り値を破棄します。typeoftypeof演算子は、与えられたオブジェクトの型を判別します。+- 単項正値演算子は、そのオペランドを Number 型に変換します。
 -- 単項負値演算子は、そのオペランドを Number 型に変換して正負を反転します。
 ~- ビット否定演算子です。
 !- 論理否定演算子です。
 
算術演算子
算術演算子は、数値 (リテラルまたは値) をオペランドとして取り、1 個の数値を返します。
-   
** - べき乗演算子です。
 
関係演算子
比較演算子は、そのオペランドを比較し、その比較が真かどうかに基づいて Boolean 値を返します。
inin演算子は、与えられたプロパティをオブジェクトが持っているかどうかを判別します。instanceofinstanceof演算子は、オブジェクトが別のオブジェクトのインスタンスかどうかを判別します。<- 小なり演算子です。
 >- 大なり演算子です。
 <=- 以下演算子です。
 >=- 以上演算子です。
 
注記: => は演算子ではなく、アロー関数 のためのノーテーションです。
等値演算子
等値演算子の評価結果は常に、比較が真かどうかに基づいて Boolean 型の値になります。
ビットシフト演算子
オペランドのすべてのビットをシフト演算します。
バイナリビット演算子
ビット演算子は、そのオペランドを 32 ビット (0 と 1) の並びとして扱い、標準の JavaScript 数値を返します。
バイナリ論理演算子
論理演算には、一般的に (論理) 真偽値が使用され、それが置かれた時に真偽値を返します。
条件 (三項) 演算子
(condition ? ifTrue : ifFalse)- 
 
この条件演算子は、条件の論理値を基に、2 つの値のいずれか一方を返します。
 
代入演算子
代入演算子は、右辺のオペランドに基づいて、値を左辺のオペランドに代入します。
=- 代入演算子です。
 *=- 乗算値を代入します。
 /=- 除算値を代入します。
 %=- 剰余値を代入します。
 +=- 加算値を代入します。
 -=- 減算値を代入します。
 <<=- 左シフトした値を代入します。
 >>=- 右シフトした値を代入します。
 >>>=- 符号なしの右シフトした値を代入します。
 &=- ビット論理積 (AND) の値を代入します。
 ^=- ビット排他的論理和 (XOR) の値を代入します。
 |=- ビット論理和 (OR) の値を代入します。
 [a, b] = [1, 2]{a, b} = {a:1, b:2}- 
 
分割代入は、配列やオブジェクトのプロパティを、配列やオブジェクトリテラルに似た構文を使用して変数に代入します。
 
カンマ演算子
,- カンマ演算子は、複数の式を単一の文で評価し、その最後の式の結果を返します。
 
非標準の機能
- レガシージェネレータ関数
 functionキーワードは、式の内部でレガシージェネレータ関数の定義に使用されます。関数をレガシージェネレータにするには、関数本体に少なくとも 1 個のyield式を含めてください。- 式クロージャ
 - 式クロージャ構文は、単純な関数を書くための省略記法です。
 -   
[for (x of y) x] - 配列内包表記です。
 -   
(for (x of y) y) - ジェネレータ内包表記です。
 
関数
この章では、アプリケーションの開発で JavaScript の関数をどう使うか説明しています。
