English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
演算子の優先順位は、演算子が解析される方法を決定します。
高い優先順位を持つ演算子は、低い優先順位を持つ演算子の操作数となります。
以下の例では、乗算の優先順位が加法の優先順位よりも高いため、演算の結果が決定されます。
// まず3乗算5、その後加算10 var x = 10 + 3 * 5;試してみて‹/›
逆に、加法演算をまず実行したい場合、括弧でグループ化し、その括弧は常に最高の優先順位を持っています。
// まず10と3加算を行い、その後乗算5 var x = (10 + 3) * 5;試してみて‹/›
括弧を使用する場合、まず括弧内の演算を計算します。
多くの演算が同じ優先順位を持っている場合(例えば、加法と減法)、それらは左から右に計算されます:
var x = 10 + 3 - 5;試してみて‹/›
式の評価も演算子の結合性に影響されます。
結合性とは、全体の式の評価方向(右から左または左から右)を指します。
もし式に同じ優先順位を持つ二つ以上の演算子が含まれている場合、どの演算子をまず計算するかは、結合性が答えます。
JavaScriptでの関連や優先順位の問題を解決するために以下のテーブルを参照してください
演算子 | 使用説明 | 演算子の結合 | 演算子の優先順位 |
---|---|---|---|
() | メソッド/機能呼び出し、グループ化 | 左から右 | 最高- 1 |
[] | 配列アクセス | 左から右 | 1 |
. | オブジェクト属性アクセス | 左から右 | 1 |
++ | 自増 | 右から左 | 2 |
-- | 自減 | 右から左 | 2 |
- | 減法 | 右から左 | 2 |
! | 論理反転 | 右から左 | 2 |
~ | ビット反転 | 右から左 | 2 |
delete | 配列の値やオブジェクトの属性を削除する | 右から左 | 2 |
new | オブジェクトを作成する | 右から左 | 2 |
typeof | データタイプを返す | 右から左 | 2 |
void | 返すべき値を指定しない | 右から左 | 2 |
/ | 除法 | 左から右 | 3 |
* | 乗法 | 左から右 | 3 |
% | 求模 | 左から右 | 3 |
+ | 加法 | 左から右 | 4 |
+ | 文字列結合 | 左から右 | 4 |
- | 減法 | 左から右 | 4 |
>> | ビット右シフト | 左から右 | 5 |
<< | ビット左シフト | 左から右 | 5 |
>, >= | 大きい、大きいかつ | 左から右 | 6 |
<, <= | 小さい、小さいかつ | 左から右 | 6 |
== | 一致 | 左から右 | 7 |
!= | 不等 | 左から右 | 7 |
=== | 一致/厳しく一致(同じデータタイプ) | 左から右 | 7 |
!== | 不一致/厳しく異なる(異なるデータタイプ) | 左から右 | 7 |
& | ビット AND | 左から右 | 8 |
^ | ビット XOR | 左から右 | 9 |
| | ビット或 | 左から右 | 10 |
&& | 論理と | 左から右 | 11 |
|| | 論理または | 左から右 | 12 |
?: | 条件分岐 | 左から右 | 13 |
= | 代入 | 右から左 | 14 |
*=, /=, %=, +=,, -=, <<=, >>=, >>>=, &=, ^=, |= | 前の演算子に基づいて割り当てる | 右から左 | 14 |
, | 多重評価 | 左から右 | 最低:15 |