ECMAScript JavaScript JScriptActionScript演算子の優先順位

ECMAScript JavaScript JScriptActionScript演算子の優先順位

MDN Web Docs

演算子の優先順位によって、式の操作が実行される順序が決まります。優先順位の高い演算子が最初に実行されます。
JavaScriptデモ:式-演算子の優先順位

console.log(3 + 4 * 5); // 3 + 20
// expected output: 23

console.log(4 * 3 ** 2); // 4 * 9
// expected output: 36

let a;
let b;

console.log(a = b = 5);
// expected output: 5

関連性

关联性决定了拥有相同优先级的运算符的执行顺序。考虑下面这个表达式:
a OP b OP c;

左の関連付け(左から右)は、左の部分式に括弧(a OP b)OP cを追加することと同等であり、右の関連付け(右から左)はOP(b OP c)と同等です。代入演算子は正しく結合しているので、次のように書くことができます。

a = b = 5; 

その結果、aとbの値は両方とも5になります。これは、代入演算子の戻り結果が代入演算子の右側の値であるためです。具体的なプロセスは次のとおりです。bが5に割り当てられ、次にaがb = 5の戻り値(5)に割り当てられます。 。

3 > 2 && 2 > 1
// return true

3 > 2 > 1
// 返回 false,因为 3 > 2 是 true,并且 true > 1 is false
// 加括号可以更清楚:(3 > 2) > 1

要約表

次の表では、すべての演算子を優先順位に従って高(20)から低(1)まで並べています。

優先度 操作タイプ 関連性 オペレーター
21 括弧 該当なし (…)
20 メンバーアクセス 左から右へ …。
カウントされるメンバーアクセス 左から右へ …[…]
新規(パラメータリスト付き) 該当なし 新着 … ( … )
関数呼び出し 左から右へ …(…)
オプションのチェーン(ts、draft esでサポート) 左から右へ ?。
19 新規(パラメータリストなし) 右から左へ 新着 …
18 ポストインクリメント(後の演算子) 該当なし …++
ポストデクリメント(後の演算子) …-
17 論理否定 右から左へ
ビット単位ではありません 〜…
単項加算 +…
単項減算 -…
プレインクリメント ++…
事前デクリメント -…
typeof typeof…
ボイド ボイド…
削除 削除…
待つ 待って…
16 パワー 右から左へ …***…
15 乗算 左から右へ …*…
分割 …/…
モジュロ …%…
14 添加 左から右へ …+…
減算 …-…
13 左へのビットシフト 左から右へ …<<…
ビットシフト右 …>>…
符号なし右シフト …>>>…
12 未満 左から右へ …<…
以下 …<=…
以上 …>>…
以上以上 …> =…
… in …
instanceof … instanceof …
11 等号 从左到右 … == …
非等号 … != …
全等号 … === …
非全等号 … !== …
10 按位与 从左到右 … & …
9 按位异或 从左到右 … ^ …
8 按位或 从左到右 … | …
7 逻辑与 从左到右 … && …
6 逻辑或 从左到右 … || …
5 空值合并 从左到右 … ?? …
4 条件运算符 从右到左 … ? … : …
3 赋值 从右到左 … = …
… += …
… -= …
… **= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
… &&= …
… ||= …
… ??= …
2 yield 从右到左 yield …
yield* yield* …
1 展开运算符 n/a (不相关) ... …
0 逗号 从左到右 … , …

おすすめ

転載: blog.csdn.net/weixin_35597398/article/details/114070269