JavaScript 算術

数値を処理する典型的なシチュエーションは算術です。

JavaScript 算術演算子

算術演算子は数値(文字や変数)に対して算術演算を実行します。

演算子 説明
+ 加法
- 減法
* 乗法
** べき(ES2016
/ 除法
% 係数
++ 増加
-- 減少

算術演算子

典型的な算術演算は、2つの数値を操作します。

これらの数は、文字列や変数で表されることができます。

インスタンス

var x = 7 + 8;

実際に試してみてください

または変数:

インスタンス

var x = a + b;

実際に試してみてください

または表現:

インスタンス

var x = (7 + 8) * a;

実際に試してみてください

演算子と操作数

算術演算では、数は操作数優先順位

(二つの操作数の間で実行される)演算は、演算子定義。

操作数 演算子 操作数
7 + 8

加法

加法演算子(+)加数:

var x = 7;
var y = 8;
var z = x + y; 

実際に試してみてください

減法

減法演算子(-)減数。

var x = 7;
var y = 8;
var z = x - y; 

実際に試してみてください

乗法

乗法演算子(*)乗数。

var x = 7;
var y = 8;
var z = x * y; 

実際に試してみてください

除法

除法演算子(/)除数。

var x = 7;
var y = 2;
var z = x / y; 

実際に試してみてください

係数

係数演算子(%)除法の余りを返します。

var x = 7;
var y = 2;
var z = x % y; 

実際に試してみてください

注記:算術では、2つの整数の除法は商と余りを生成します。

注記:数学では、模演算の結果は算術除法の余りです。

増加

増加演算子(++)値を増加させます。

var x = 7;
x++;
var z = x;

実際に試してみてください

減少

減少演算子(--)値を減少させます。

var x = 7;
x--;
var z = x; 

実際に試してみてください

べき

取幂演算子(**)は、第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)を示します。

ヒント:括弧内の式は、その式の残りの部分で値が使用される前に完全に計算されます。