JavaScriptにも他の言語と同じように演算子があります。演算子は、単一または複数のオペランド(データ値)に対して何らかの演算を行い、結果を出力するものです。
例えば、1 + 2 では、+ 記号が演算子で、1が左側オペランド、2が右側オペランドです。演算子は、2つの数値の加算を行い、結果を返します。
基本的な文法は以下の通りです。
<左オペランド> 演算子 <右オペラン>
<左オペランド> 演算子
JavaScriptには、以下のような演算子があります。
JavaScriptの算術演算子
算術演算子は、数値演算子間の数学的処理を行うために使用されます。
演算子 | 説明 |
+ | 2つの数値を加算する。 |
– | 左の数値から右の数値を減算する |
* | 2つの数値を乗算する。 |
/ | 左の数値を右の数値で割る |
% | 2つの数値の余りを返します。 |
++ | インクリメント演算子。数値を1つ増加させる。 |
— | デクリメント演算子。数値を1つ減らす。 |
次の例は、算術演算子がオペランドに対してどのように異なる処理を行うかを示しています。
var x = 5, y = 10;
var z = x + y; //performs addition and returns 15
z = y - x; //performs subtraction and returns 5
z = x * y; //performs multiplication and returns 50
z = y / x; //performs division and returns 2
z = x % 2; //returns division remainder 1
演算子 ++ と — は単項演算子です。左オペランド、右オペランドのどちらかのみで機能します。
左オペランドで使用する場合、例えば x++ とすると、プログラムの制御が次の文に移るときに x の値を増加させます。
同様に、右オペランドで使用した場合、例えば ++x のように、そこだけxの値を増加させます。したがって、x++はポストインクリメント、++xはプリインクリメントと呼ばれる。
var x = 5;
x++; //post-increment, x will be 5 here and 6 in the next line
++x; //pre-increment, x will be 7 here
x--; //post-decrement, x will be 7 here and 6 in the next line
--x; //pre-decrement, x will be 5 here
JavaScriptで文字列の連結
演算子は、オペランドの一方が文字列型の場合、連結操作を行います。次の例は、オペランドの一方が文字列であっても、文字列の連結を行うものです。
var a = 5, b = "Hello ", c = "World!", d = 10;
a + b; //returns "5Hello "
b + c; //returns "Hello World!"
a + d; //returns 15
b + true; //returns "Hello true"
c - b; //returns NaN; - operator can only used with numbers
JavaScriptの比較演算子
JavaScriptには、2つのオペランドを比較し、真偽値を返す比較演算子があります。
演算子 | 説明 |
== | 型を考慮せずに2つのオペランドの等価性を比較する。 |
=== | 2つのオペランドが等しいかどうかを、型を指定して比較する。 |
!= | 2つのオペランドの不等式を比較する。 |
> | 左辺の値が右辺の値より大きい場合、真偽値を返し、そうでない場合は偽値を返す。 |
< | 左辺の値が右辺の値より小さい場合は真、それ以外の場合は偽を返す。 |
>= | 左辺の値が右辺の値より大きいか等しい場合、真偽値を返し、そうでない場合は偽値を返す。 |
<= | 左辺の値が右辺の値より小さいか等しい場合、真偽値を返し、そうでない場合は偽値を返す。 |
次の例では、比較演算子について説明します。
var a = 5, b = 10, c = "5";
var x = a;
a == c; // returns true
a === c; // returns false
a == x; // returns true
a != b; // returns true
a > b; // returns false
a < b; // returns true
a >= b; // returns false
a <= b; // returns true
JavaScriptの論理演算子
JavaScriptでは、2つ以上の条件を組み合わせるために、論理演算子を使用します。JavaScriptには、以下の論理演算子があります。
演算子 | 説明 |
&& | && は AND 演算子として知られています。2つのオペランドが0でないかどうかを調べます(0、false、undefined、null、””は0とみなされます)。0でない場合は1を返し、そうでない場合は0を返します。 |
|| | ||はOR演算子として知られています。2 つのオペランドのいずれかが 0 でないかどうかを調べます (0, false, undefined, null または “” は 0 と見なされます)。どちらかが非ゼロの場合は1を、そうでない場合は0を返します。 |
! | !は、NOT演算子として知られています。オペランド(または条件)のブール値を反転させます。false は真を返し、!true は偽を返します。 |
var a = 5, b = 10;
(a != b) && (a < b); // returns true
(a > b) || (a == b); // returns false
(a < b) || (a == b); // returns true
!(a < b); // returns false
!(a > b); // returns true
JavaScriptの代入演算子
JavaScriptでは、より少ないキーストロークで変数に値を割り当てることができる代入演算子が用意されています。
演算子 | 説明 |
= | 右オペランドの値を左オペランドに代入する。 |
+= | 左オペランドと右オペランドの値を合計し、その結果を左オペランドに代入する。 |
-= | 左オペランド値から右オペランド値を減算し、その結果を左オペランドに代入する。 |
*= | 左オペランドと右オペランドの値を乗算し、結果を左オペランドに代入する。 |
/= | 左オペランド値を右オペランド値で除算し、その結果を左オペランドに代入する。 |
%= | 左オペランドを右オペランドで割ったモジュラスを取得し、その結果を左オペランドに代入します。 |
var x = 5, y = 10, z = 15;
x = y; //x would be 10
x += 1; //x would be 6
x -= 1; //x would be 4
x *= 5; //x would be 25
x /= 5; //x would be 1
x %= 2; //x would be 1
JavaScriptの三項演算子
JavaScriptには三項演算子という特殊な演算子があり、何らかの条件に基づいて変数に値を代入します。
また、これは if else 条件の短縮形でもある。
書き方は以下のとおりです。
条件式 ? trueの値 : falseの値;
三項演算子は、条件式で始まり、?演算子が続きます。の後、: の前の部分が、条件が成立した場合に実行されます。仮に条件が偽の場合、3番目の部分(:の後)が実行されます。
var a = 10, b = 5;
var c = a > b? a : b; // value of c would be 10
var d = a > b? b : a; // value of d would be 5