JavaScript 算術
数値を処理する典型的なシチュエーションは算術です。
JavaScript 算術演算子
算術演算子は数値(文字や変数)に対して算術演算を実行します。
演算子 | 説明 |
---|---|
+ | 加法 |
- | 減法 |
* | 乗法 |
** | べき(ES2016) |
/ | 除法 |
% | 係数 |
++ | 増加 |
-- | 減少 |
算術演算子
典型的な算術演算は、2つの数値を操作します。
これらの数は、文字列や変数で表されることができます。
インスタンス
var x = 7 + 8;
または変数:
インスタンス
var x = a + b;
または表現:
インスタンス
var x = (7 + 8) * a;
演算子と操作数
算術演算では、数は操作数優先順位
(二つの操作数の間で実行される)演算は、演算子定義。
操作数 | 演算子 | 操作数 |
---|---|---|
7 | + | 8 |
係数
係数演算子(%
)除法の余りを返します。
var x = 7; var y = 2; var z = x % y;
注記:算術では、2つの整数の除法は商と余りを生成します。
注記:数学では、模演算の結果は算術除法の余りです。
べき
取幂演算子(**)は、第1操作数を第2操作数のべきに引き上げます。
インスタンス
x ** y が生成する結果は Math.pow(x,y) と同じです: var z = x ** 2; // 結果は 25
x ** y 产生的结果与 Math.pow(x,y) 相同:
インスタンス
x ** y が生成する結果は Math.pow(x,y) と同じです: var x = 5;
var z = Math.pow(x,2); // 結果は 25
演算子の優先順位
インスタンス
演算子の優先順位(Operator precedence)は、算術式で実行される操作の順序を説明します。
var x = 200 + 50 * 2;
上記の結果は 250 * 2 か 200 + 100 ですか?
加法と乗法、どちらが優先されますか?
伝統的な学校の数学では、乗法が優先されます。*
乗法(%
)と除法(+
)と加法(-
)と減法()が高い優先順位
。
インスタンス
var x = (200 + 50) * 2;
括号を使用すると、優先順位を変更できます。 (学校の数学のように)
複数の演算が同じ優先順位を持つ場合(例えば、加法と減法)、それらの計算は左から右に進行します:
インスタンス
var x = 200 + 50 - 2;
JavaScript演算子の優先順位値
値 | 演算子 | 説明 | インスタンス |
---|---|---|---|
20 | ( ) | 式の括り | (3 + 4) |
19 | . | メンバー | person.name |
19 | [] | メンバー | person["name"] |
19 | () | 関数呼び出し | myFunction() |
19 | new | 作成 | new Date() |
17 | ++ | 後置加算 | i++ |
17 | -- | 後置減算 | i-- |
16 | ++ | 前置加算 | ++i |
16 | -- | 前置減算 | --i |
16 | ! | 論理否定 | !(x==y) |
16 | typeof | タイプ | typeof x |
15 | ** | 冪 (ES7) | 10 ** 2 |
14 | * | 乗 | 10 * 5 |
14 | / | 除 | 10 / 5 |
14 | % | モジュロ除法 | 10 % 5 |
13 | + | 加 | 10 + 5 |
13 | - | 減 | 10 - 5 |
12 | << | 左シフト | x << 2 |
12 | >> | 右シフト | x >> 2 |
12 | >>> | 無符号右シフト | x >>> 2 |
11 | < | 小さい | x < y |
11 | <= | 小さいかまたは等しい | x <= y |
11 | > | 大きい | x > y |
11 | >= | 大きいかまたは等しい | x >= y |
11 | in | オブジェクトの属性 | "PI" in Math |
11 | instanceof | オブジェクトのインスタンス | Arrayインスタンス |
10 | == | 等しい | x == y |
10 | === | 厳密に等しい | x === y |
10 | != | 異なる | x != y |
10 | !== | 厳しく異なる | x !== y |
9 | & | ビット別和 | x & y |
8 | ^ | ビット別XOR | x ^ y |
7 | | | ビット別または | x | y |
6 | && | 論理和 | x && y |
5 | || | 論理否定 | x || y |
4 | ? : | 条件 | ? "はい" : "いいえ" |
3 | = | 割り当て | x = y |
3 | += | 割り当て | x += y |
3 | -= | 割り当て | x -= y |
3 | *= | 割り当て | x *= y |
3 | %= | 割り当て | x %= y |
3 | <<= | 割り当て | x <<= y |
3 | >>= | 割り当て | x >>= y |
3 | >>>= | 割り当て | x >>>= y |
3 | &= | 割り当て | x &= y |
3 | ^= | 割り当て | x ^= y |
3 | |= | 割り当て | x |= y |
2 | yield | パウザ機能 | yield x |
1 | , | カンマ | 7 , 8 |
注意:薄紅色の指示は、実験的または推奨される技術(ECMASScript 2016 または ES7)を示します。
ヒント:括弧内の式は、その式の残りの部分で値が使用される前に完全に計算されます。