式と演算子
この節では、JavaScript 言語のすべての演算子、式、キーワードについて記述しています。
式と演算子(カテゴリー別)
アルファベット順の一覧は左側のサイドバーをご覧ください。
基本式
JavaScript での基本的なキーワードと一般的な式です。これらの式は最も高い優先順位を持ちます(演算子よりも高い)。
this
-
this
キーワードは関数の実行コンテキストを示す特別なプロパティです。 - リテラル
-
基本的な
null
、論理値、数値、文字列のリテラルです。 []
-
配列初期化子またはリテラル構文です。
{}
-
オブジェクト初期化子またはリテラル構文です。
function
-
function
キーワードは関数式を定義します。 class
-
class
キーワードはクラス式を定義します。 function*
-
function*
キーワードはジェネレーター関数式を定義します。 async function
-
async function
は非同期関数式を定義します。 async function*
-
async function*
キーワードは非同期ジェネレーター関数式を定義します。 /ab+c/i
-
正規表現リテラル構文です。
`string`
-
テンプレートリテラル構文です。
( )
-
グループ化演算子です。
左辺式
左辺値は、代入の対象になります。
- プロパティアクセサー
-
プロパティアクセス演算子はオブジェクトのプロパティやメソッドへのアクセス (
object.property
やobject["property"]
) を提供します。 ?.
-
オプショナルチェーン演算子は、参照が nullish(
null
またはundefined
)であった場合にエラーを発生させる代わりにundefined
を返します。 new
-
new
演算子はコンストラクターのインスタンスを作成します。 new.target
-
コンストラクター内で
new.target
を使うことで、new
によって呼び出されるコンストラクターを参照できます。 import.meta
-
コンテキストに依存したメタデータを JavaScript モジュールへ公開するオブジェクトです。
super
-
super
キーワードは親オブジェクトのコンストラクタを呼び出したり、親オブジェクトのプロパティにアクセスしたりすることができます。 import()
-
import()
構文を使うと、モジュールを非同期かつ動的に、潜在的にモジュールでない環境に読み込むことができます。
インクリメントとデクリメント
単項演算子
算術演算子
関係演算子
等値演算子
ビットシフト演算子
バイナリービット演算子
バイナリー論理演算子
条件(三項)演算子
(条件 ? 真の場合 : 負の場合)
-
この条件演算子は、条件の論理値を基に、2 つの値のいずれか一方を返します。
代入演算子
代入演算子は、右辺のオペランドに基づいて、値を左辺のオペランドに代入します。
=
-
代入演算子です。
*=
-
乗算値を代入します。
/=
-
除算値を代入します。
%=
-
剰余値を代入します。
+=
-
加算値を代入します。
-=
-
減算値を代入します。
<<=
-
左シフトした値を代入します。
>>=
-
右シフトした値を代入します。
>>>=
-
符号なしの右シフトした値を代入します。
&=
-
ビット論理積 (AND) の値を代入します。
^=
-
ビット排他的論理和 (XOR) の値を代入します。
|=
-
ビット論理和 (OR) の値を代入します。
**=
-
べき乗値を代入します。
&&=
-
論理積代入です。
||=
-
論理和代入です。
??=
-
論理 Null 合体代入です。
[a, b] = arr
,{ a, b } = obj
-
分割代入は、配列やオブジェクトのプロパティを、配列やオブジェクトリテラルに似た構文を使用して変数に代入します。
yield 演算子
スプレッド構文
...obj
-
スプレッド構文を使用すると、配列や文字列などの反復可能オブジェクトを、 0 個以上の引数(関数呼び出しの場合)や要素(配列リテラルの場合)が予想される配置で展開することができます。オブジェクトリテラルでは、スプレッド構文はオブジェクトのプロパティを列挙し、作成するオブジェクトにキーと値のペアを追加します。
カンマ演算子
,
-
カンマ演算子は、複数の式を単一の文で評価し、最後の式の結果を返すことができます。
仕様書
ブラウザーの互換性
BCD tables only load in the browser