このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
式と演算子
この節では、JavaScript 言語のすべての演算子、式、キーワードについて記述しています。
In this article
式と演算子(カテゴリー別)
アルファベット順の一覧は左側のサイドバーをご覧ください。
基本式
JavaScript での基本的なキーワードと一般的な式です。これらの式は最も高い優先順位を持ちます(演算子よりも高い)。
thisthisキーワードは関数の実行コンテキストを示す特別なプロパティです。- リテラル
基本的な
null、論理値、数値、文字列のリテラルです。[]配列初期化子またはリテラル構文です。
{}オブジェクト初期化子またはリテラル構文です。
functionfunctionキーワードは関数式を定義します。classclassキーワードはクラス式を定義します。function*function*キーワードはジェネレーター関数式を定義します。async functionasync functionは非同期関数式を定義します。async function*async function*キーワードは非同期ジェネレーター関数式を定義します。/ab+c/i正規表現リテラル構文です。
`string`テンプレートリテラル構文です。
( )グループ化演算子です。
左辺式
左辺値は、代入の対象になります。
- プロパティアクセサー
プロパティアクセス演算子はオブジェクトのプロパティやメソッドへのアクセス (
object.propertyやobject["property"]) を提供します。?.オプショナルチェーン演算子は、参照がヌル値(
nullまたはundefined)であった場合にエラーを発生させる代わりにundefinedを返します。newnew演算子はコンストラクターのインスタンスを作成します。new.targetコンストラクター内で
new.targetを使うことで、newによって呼び出されるコンストラクターを参照できます。import.metaコンテキストに依存したメタデータを JavaScript モジュールへ公開するオブジェクトです。
supersuperキーワードは親オブジェクトのコンストラクターを呼び出したり、親オブジェクトのプロパティにアクセスしたりすることができます。import()import()構文を使うと、モジュールを非同期かつ動的に、潜在的にモジュールでない環境に読み込むことができます。
インクリメントとデクリメント
後置/前置のインクリメント演算子と後置/前置のデクリメント演算子です。
単項演算子
単項演算は、単一のオペランドによる演算です。
算術演算子
算術演算子は、数値(リテラルまたは値)をオペランドとして取り、1 個の数値を返します。
関係演算子
比較演算子はオペランド同士を比較し、その比較結果が真かどうかに基づいて論理値を返します。
<(Less than)小なり演算子です。
>(Greater than)大なり演算子です。
<=小なりイコール演算子です。
>=大なりイコール演算子です。
instanceofinstanceof演算子は、オブジェクトが別のオブジェクトのインスタンスかどうかを判別します。inin演算子は、与えられたプロパティをオブジェクトが持っているかどうかを判別します。
メモ:=> は演算子ではなく、アロー関数のための記法です。
等値演算子
等値演算子の評価結果は常に、比較が真かどうかに基づいて論理型の値になります。
ビットシフト演算子
オペランドのすべてのビットをシフト演算します。
バイナリービット演算子
ビット演算子は、そのオペランドを 32 ビット(0 と 1)の並びとして扱い、標準の JavaScript 数値を返します。
バイナリー論理演算子
論理演算子は論理値(ブール値)において実装され、短絡評価があります。
条件(三項)演算子
(条件 ? 真の場合 : 負の場合)この条件演算子は、条件の論理値を基に、2 つの値のいずれか一方を返します。
代入演算子
代入演算子は、右オペランドに基づいて、値を左オペランドに代入します。
=代入演算子です。
*=乗算値を代入します。
/=除算値を代入します。
%=剰余値を代入します。
+=加算値を代入します。
-=減算値を代入します。
<<=左シフトした値を代入します。
>>=右シフトした値を代入します。
>>>=符号なしの右シフトした値を代入します。
&=ビット論理積 (AND) の値を代入します。
^=ビット排他的論理和 (XOR) の値を代入します。
|=ビット論理和 (OR) の値を代入します。
**=べき乗値を代入します。
&&=論理積代入です。
||=論理和代入です。
??=論理ヌル値合体代入です。
[a, b] = arr,{ a, b } = obj構造分解は、配列やオブジェクトのプロパティを、配列やオブジェクトリテラルに似た構文を使用して変数に代入します。
yield 演算子
スプレッド構文
...objスプレッド構文を使用すると、配列や文字列などの反復可能オブジェクトを、 0 個以上の引数(関数呼び出しの場合)や要素(配列リテラルの場合)が予想される配置で展開することができます。オブジェクトリテラルでは、スプレッド構文はオブジェクトのプロパティを列挙し、作成するオブジェクトにキーと値のペアを追加します。
カンマ演算子
,カンマ演算子は、複数の式を単一の文で評価し、最後の式の結果を返すことができます。