■ 演算子について
JavaScript には計算や比較に利用するためのさまざまな演算子が用意されていて、
これらの演算子を使うことで複雑な計算や、条件の判定を行うことが出来ます。
JavaScript 出利用できる演算子には、大きく分けて下記の5つがあります。
![]() |
各種演算子の紹介 |
![]() |
○ 算術演算子
算術演算子では、加算、減算、乗算、除算及び除算の余りを求めることができます。
数値計算を行なう際に使用します。
(例) value
= 30
+ 25;
演算子 |
名前 |
内容 |
+ |
加算 |
2つの数値の和を求めます |
- |
減算 |
2つの数値の差を求めます |
* |
乗算 |
2つの数値の積を求めます |
/ |
除算 |
2つの数値で除算を行ないます |
% |
余剰 |
2つの数値で除算を行ない、その余りを求めます |
++ |
インクリメント |
変数の値を1増やします |
-- |
デクリメント |
変数の値を1減らします |
○ ビット演算子
ビット演算子では式を32ビットの整数とみなして演算を行ないます。
コンピュータでは、文字列も数値もすべてビット単位(2進数) で処理しています。
この演算子では値をコンピュータと同じようにビット単位で取り扱います。
(例) 12
& 5 は 4 (1100 & 0101 = 0100)
12
| 5 は 13 (110010101 = 1101) となります
演算子 |
名前 |
内容 |
& |
ビットごとのAND |
2つの値で各ビットの論理積を求めます |
| |
ビットごとのOR |
2つの値で各ビットの論理和を求めます |
^ |
ビットごとのXOR |
2つの値で各ビットの排他的論理和を求めます |
~ |
ビットごとのNOR |
各ビットを反転させた結果を求めます |
<< |
左シフト |
指定された分だけ各ビットを左にシフトします |
>> |
右シフト |
指定された分だけ各ビットを右にシフトします |
>>> |
符号なし右シフト |
符合を考慮せず、右シフトします |
<<= |
左シフトの代入 |
指定された分だけ各ビットを左にシフトして左辺に代入します |
>>= |
右シフトの代入 |
指定された分だけ各ビットを右にシフトして左辺に代入します |
>>>= |
符号なし右シフトの代入 |
符合を考慮せず、右シフトして左辺に代入します |
○ 論理演算子
「両方が正しい」、「どちらか一方が正しい」、「正しくない」 など、条件を判別するための演算子です。
主に if 構文の条件式に使用します。多くの場合は比較演算子と組み合わせて使用します。
(例) if (a >= 5
&& b >= 10) { 〜 処理内容 〜 }
// a が 5 以上、b が 10 以上の場合の処理
演算子 |
名前 |
内容 |
&& |
論理積 |
2つの値の論理積を求めます(両方が true の場合のみ true) |
|| |
論理和 |
2つの値の論理和を求めます(一方または両方が true なら true) |
! |
論理否定 |
指定された値の論理否定を求めます |
?: |
条件 |
条件が true なら1つめの文、false なら2つめの文を実行します |
, |
カンマ |
2つの式を順に続けて実行します |
○ 比較演算子
2つの値の比較を行なう演算子です。
数値の大小を比較したり、文字列が一致するかどうかを調べたり、値が true と false のどちらであるかを調べたりする際に使用します。
結果は true または false のいずれかになり、さまざまな構文の条件式に使用されます。
(例) if (a
< 20) { 〜 処理内容 〜 }
// a が 20 以下の場合の処理
(例) if (value
!= "") { 〜 処理内容 〜 }
// 変数 value が何らかの文字が入っている場合の処理
(例) if (return
== false) { 〜 処理内容 〜 }
// 変数 return の値が false である場合の処理
演算子 |
名前 |
内容 |
< |
より小さい |
a < 10 は a が10未満のとき true、10以上のとき false です |
<= |
以下 |
a <= 10 は a が10以下のとき true、10より大きいと false です |
> |
より大きい |
a > 10 は a が11以上のとき true、10以下のとき false です |
>= |
以上 |
a >= 10 は a が10以上のとき true、10未満のとき false です |
== |
等しい |
a == 10 は a が10のとき true、それ以外のとき false です |
!= |
等しくない |
a != 10 は a が10以外のとき true、10のとき false です |
○ 代入演算子
= (代入演算子) では、右辺の値を左辺の変数に代入します。
(例) a
= 22 + 44;
// 数値の演算結果を変数に代入
(例) name
= "佐々木" + "大輔";
// 文字列の結合結果を変数に代入
(例) name
= "佐々木" + "大輔";
name
+= "さん";
// 文字列を追加結合して結果を変数に代入
演算子 |
名前 |
内容 |
= |
代入 |
値を変数に代入します |
+= |
加算代入 |
指定された値を加算します。 a += 5 は a = a+5 と同じです。 |
-= |
減算代入 |
指定された値を減算します。 a -= 5 は a = a-5 と同じです。 |
*= |
乗算代入 |
指定された値を乗算します。 a *= 5 は a = a*5 と同じです。 |
/= |
除算代入 |
指定された値を除算します。 a /= 5 は a = a/5 と同じです。 |
%= |
余剰代入 |
指定された値を除算し、余りを求めます。 a %= 5 は a = a%5 と同じです。 |
○ 演算子の優先順位
演算子には優先順位がありその順番に従って演算が行なわれます。
同じ優先順位の計算式があった場合には、左側から順番に演算が行なわれます。
x = 15 * 4 + 12 / 3;
y = 15 * ( 4 + 12 / 3 );
上記の計算式では、x の値は優先順位に従って演算がなされ 64 となりますが、
y の値は括弧内の計算が優先されるため 120 となります。
下記の表は優先順位の高い順に並べたものです。
同じ行にある演算子の優先度は同じです。
優先順位 |
演算子 |
1 |
. [] () |
2 |
++ -- - ~ ! |
3 |
* / % |
4 |
+ - |
5 |
<< >> >>> |
6 |
< <= > >= |
7 |
== != === !== |
8 |
& |
9 |
^ |
10 |
| |
11 |
&& |
12 |
|| |
13 |
?: |
14 |
= += -= /= %= &= |= ^= <<= >>= >>>= |
|