JavaScript - 算術演算子

算術演算子

算術演算子には、加算演算子減算演算子乗算演算子除算演算子剰余演算子べき乗演算子単項算術演算子 などがあります。

加算演算子

加算演算子は数値の合計、または文字列の連結を行います。

// Number + Number -> 加算
1 + 2 // 3

// Boolean + Number -> 加算
true + 1 // 2

// Boolean + Boolean -> 加算
false + false // 0

// Number + String -> 連結
5 + 'foo' // "5foo"

// String + Boolean -> 連結
'foo' + false // "foofalse"

// String + String -> 連結
'foo' + 'bar' // "foobar"

減算演算子

減算演算子は 1 つの数値から 1 つの数値を差し引き、差を返します。

5 - 3 // 2
3 - 5 // -2
'foo' - 3 // NaN

除算演算子

除算演算子は左のオペランドを右のオペランドで割り引くことで商を返します。

1 / 2      // 0.5

1.0 / 2.0  // 0.5

2.0 / 0    // Infinity
2.0 / 0.0  // Infinity
2.0 / -0.0 // -Infinity

乗算演算子

乗算演算子は数値を掛けあわせた結果を返します。

2 * 2 // 4
-2 * 2 // -4
Infinity * 0 // NaN
Infinity * Infinity // Infinity
'foo' * 2 // NaN

剰余演算子

剰余演算子は 1 つ目の数値を 2 つ目の数値で割った余りを返します。剰余は常に被除数の符号を採用します。

12 % 5 // 2
-1 % 2 // -1
1 % -2 // 1
NaN % 2 // NaN
1 % 2 // 1
2 % 3 // 2
-4 % 2 // -0
5.5 % 2 // 1.5

べき乗演算子

べき乗は 1 つ目の数値を 2 つ目の数値でべき乗した値を返します。

2 ** 3 // 8
3 ** 2 // 9
3 ** 2.5 // 15.588457268119896
10 ** -1 // 0.1
NaN ** 2 // NaN

2 ** 3 ** 2 // 512
2 ** (3 ** 2) // 512
(2 ** 3) ** 2 // 64

単項算術演算子

単項算術演算子 (+、-、++、--) はすべて、必要に応じてオペランドを数値に変換します。ただし +- は、単項演算子としても二項演算子としても使われる点に注意してください。単項算術演算子を以下に示します。

単項プラス (+)
単項プラス演算子は、オペランドを数値 (または NaN) に変換して返します。
+3     // 3
+'3'   // 3
+true  // 1
+false // 0
+null  // 0
+function(val){ return val } // NaN
単項マイナス (-)
単行マイナス演算子は、オペランドを数値に変換し、変換結果の符号を反転して返します。
var x = 3;
y = -x; // y = -3, x = 3

var x = "4";
y = -x; // y = -4
インクリメント (++)
インクリメント演算子は数値を 1 ずつ加算し、値を返します。
  • オペランドの後に演算子を置く後置記法 (x++) で使った場合、加算する前の値を返します。
  • オペランドの前に演算子を置く前置記法 (++x) で使った場合、加算した後の値を返します。
// 後置記法
var x = 3;
y = x++; // y = 3, x = 4

// 前置記法
var a = 2;
b = ++a; // a = 3, b = 3
デクリメント (--)
デクリメント演算子は数値を 1 ずつ減算し、値を返します。
  • オペランドの後に演算子を置く後置記法 (x--) で使った場合、減算する前の値を返します。
  • オペランドの前に演算子を置く前置記法 (--x) で使った場合、減算した後の値を返します。
// 後置記法
var x = 3;
y = x--; // y = 3, x = 2

// 前置記法
var a = 2;
b = --a; // a = 1, b = 1

関連記事

JavaScript のまとめページはプログラミング JavaScript 入門を参照してください。

Category:
プログラミング
公開日:
更新日:
Pageviews:
28
Shares:
0
Tag:
JavaScript