MDN の JavaScript セクションは、JavaScript 言語の全貌を含む情報集積所という役目を担っています。 詳しくはこのリファレンスについてを参照してください。
グローバルオブジェクト
この章ではメソッドやプロパティとともに JavaScript の標準ビルトインオブジェクトについて文書化しています。
値プロパティ
これらのグローバルプロパティは単なる値を返します。これらの値はプロパティもメソッドも持ちません。
関数プロパティ
これらのグローバル関数 ― オブジェクト上ではなくグローバルとして呼ばれる関数 ― は呼び出し元に直接結果を返します。
eval()
uneval()
isFinite()
isNaN()
parseFloat()
parseInt()
decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent()
escape()
unescape()
基本オブジェクト
これらはその他すべてのオブジェクトのベースとなる、主要な、基本的オブジェクトです。これらには一般的なオブジェクト、関数、そしてエラーを表すオブジェクトが含まれます。
Object
Function
Boolean
Symbol
Error
EvalError
InternalError
RangeError
ReferenceError
SyntaxError
TypeError
URIError
数と日付
これらは数、日付、そして数学計算を表す基本的なオブジェクトです。
テキスト処理
これらは文字列表現、また文字列操作をサポートするオブジェクトです。
インデックス付きコレクション
これらのオブジェクトはインデックス値で順序付けされたデータコレクションを表します。これには(型付けされた)配列や配列のような構造体も含まれます。
Array
Int8Array
Uint8Array
Uint8ClampedArray
Int16Array
Uint16Array
Int32Array
Uint32Array
Float32Array
Float64Array
キー付きコレクション
これらのオブジェクトはキーを使ったコレクションを表します。これらは挿入順に反復可能な要素で構成されています。
ベクトルコレクション
SIMD ベクトルデータ型はデータがレーン状に配置されたオブジェクトです。
構造化データ
これらのオブジェクトは構造化データバッファ、そして 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
- 外部モジュールや別のスクリプトからエクスポートされる関数をインポートするのに使われます。
label
break
やcontinue
といった文を使う際に参照できる識別子を含む文を規定します。
-
with
- 文のスコープチェーンを拡張します。
式と演算子
この章では式と演算子について文書化しています。
アルファベット順リストは左側のサイドバーをご覧ください。
基本式
JavaScript の基本的なキーワードと一般的な式です。
this
this
キーワードは関数の実行コンテキストを参照します。function
function
キーワードは関数式を定義します。-
class
class
キーワードはクラス式を定義します。-
function*
function*
キーワードはジェネレータ関数式を定義します。-
yield
- ジェネレータ関数の一時停止と再開を行います。
-
yield*
- 別のジェネレータ関数または反復可能オブジェクトを代行します。
[]
- 配列初期化子またはリテラル構文です。
{}
- オブジェクト初期化子またはリテラル構文です。
/ab+c/i
- 正規表現式のリテラル構文です。
-
[for (x of y) x]
- 配列内包表記です。
-
(for (x of y) y)
- ジェネレータ内包表記です。
( )
- グループ化演算子です。
左辺式
左辺値は、代入の対象になります。
- プロパティアクセス演算子
- プロパティアクセス演算子はオブジェクトのプロパティやメソッドへのアクセスを提供します(
object.property
やobject["property"]
といった形で)。 new
new
演算子はコンストラクタのインスタンスを作成します。- new.target
- コンストラクタ内で
new.target
を使うことで、new
によって呼び出されるコンストラクタを参照できます。 -
super
super
キーワードは親コンストラクタを呼び出します。-
...obj
- 展開演算子(スプレッド演算子)は、式を複数の引数または複数の要素に展開して、それぞれ関数呼び出しまたは配列リテラルに渡します。
インクリメントとデクリメント
接尾/接頭辞のインクリメント演算子と接尾/接頭辞のデクリメント演算子です。
単項演算子
単項演算は、1 個のオペランドによる演算です。
delete
delete
演算子は、オブジェクトからプロパティを削除します。void
void
演算子は、式の戻り値を破棄します。typeof
typeof
演算子は、与えられたオブジェクトの型を判別します。+
- 単項正値演算子は、そのオペランドを Number 型に変換します。
-
- 単項負値演算子は、そのオペランドを Number 型に変換して正負を反転します。
~
- ビット否定演算子です。
!
- 論理否定演算子です。
算術演算子
算術演算子は、数値(リテラルまたは値)をオペランドとして取り、1 個の数値を返します。
関係演算子
比較演算子は、そのオペランドを比較し、その比較が真かどうかに基づいて Boolean
値を返します。
in
in
演算子は、与えられたプロパティをオブジェクトが持っているかどうかを判別します。instanceof
instanceof
演算子は、オブジェクトが別のオブジェクトのインスタンスかどうかを判別します。<
- 小なり演算子です。
>
- 大なり演算子です。
<=
- 以下演算子です。
>=
- 以上演算子です。
等値演算子
等値演算子の評価結果は常に、比較が真かどうかに基づいて 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
式を含めてください。- 式クロージャ
- 式クロージャ構文は、単純な関数を書くための省略記法です。
関数
この章ではアプリケーションを開発する際、JavaScript の関数がどのように機能するについて文書化しています。