演算子の種類
算術演算子
演算子 | 読み仮名 | 働き | 使い方 | 結果 |
---|---|---|---|---|
+ | プラス | +(足す) | a = 5 + 5 | 10 |
- | マイナス | -(引く) | a = 5 - 5 | 0 |
* | アスタリスク | ×(かける) | a = 5 * 5 | 25 |
/ | スラッシュ | ÷(割る) | a = 5 / 5 | 1 |
% | パーセント | …(余り) | a = 5 % 5 | 0 |
[++]インクリメント演算子と[--]デクリメント演算子
演算子 | 名称 | 働き | 使い方 | 結果 |
---|---|---|---|---|
++ | インクリメント演算子 | 変数の値を 1増やす |
a = 1; ++a; | 2 |
-- | デクリメント演算子 | 変数の値を 1減らす |
a = 1; a--; | 0 |
前置 (++a、--a)
- インクリメント(デクリメント)
- 代入
後置 (a++、a--)
- 代入
- インクリメント(デクリメント)
前置、後置で処理の順番が異なる。
a=3; x=++a; console.log(a); // 4 console.log(x); // 4
加算処理後に代入
a=3; x=a++; console.log(a); // 4 console.log(x); // 3
加算処理前に代入
a=3; x=--a; console.log(a); // 2 console.log(x); // 2
減算処理後に代入
a=3; x=a--; console.log(a); // 2 console.log(x); // 3
減算処理前に代入
代入演算子 [ = ]
「=」は数学の等しいといった意味ではなく右辺の値を左辺の変数に代入するという
意味。
複合代入演算子
算術演算子と代入演算子を組み合わすこともできる。
演算子 | 働き | 使い方 | 結果 |
---|---|---|---|
+= | 足して代入 | a = 5; a += 5; | 10 |
-= | 引いて代入 | a = 5; a -= 5; | 0 |
*= | かけて代入 | a = 5; a *= 5; | 25 |
/= | 割って代入 | a = 5; a /= 5; | 1 |
%= | 余りを代入 | a = 5; a %= 5; | 0 |
論理演算子
演算子 | 働き | 使い方 | 意味 |
---|---|---|---|
&& | かつ | (a >= 10) && (a < 50) | aは10以上かつ50未満 |
|| | または | (a == 1) || (a ==100) | aは1または100 |
! | ~ではない | !(a == 100) | aは100ではない |
&& (and)
AかつBがtrueならばにtrue、そうでないならばfalseを返す。
|| (or)
AまたはBがtrueならばtrue、そうでないならばfalseを返す。
! (not)
trueでないならばtrue、trueならばfalseを返す。
比較演算子
> 大なり
左辺の数値が右辺の数値より大きいならばtrue、それ以外の場合はfalseを返す。
< 小なり
左辺の数値が右辺の数値より小さいならばtrue、それ以外の場合はfalseを返す。
>= 大なりイコール
左辺と右辺の値が等しいか、左辺の数値が右辺の数値より大きいならばtrue、それ以外の場合はfalseを返す。
<= 小なりイコール
左辺と右辺の値が等しいか、左辺の数値が右辺の数値より小さいならばtrue、それ以外の場合はfalseを返す。
等値演算子
[==]等しい
右辺左辺の値が、等しければtrue、等しくなければfalseを返す。
[!==]等しくない
右辺左辺の値が、等しくなければtrue、等しければfalseを返す。
[===]型も等しい
右辺左辺の値と型が、等しければtrue、等しくなければfalseを返す。
[!===]型も等しくない
右辺左辺の値と型が、等しくなければtrue、等しければfalseを返す。
さらに論理演算子を理解する
複合条件文の記述
論理演算子を用いて複数の条件式を組み合わる場合は分かりやすくする為に括弧( )を用いる。
(50<=a)&&(a<100)
aは50以上かつ100未満である
条件付き実行 && と ||
<条件式> || <関数など> 条件式がfalseならば実行する <条件式> && <関数など> 条件式がtrueならば実行する
「&&」「||」はtrueかfalseかを判定できる真偽値と用いるが、実際には指定された演算対象が真偽値であるか否かにかかわらずその一方を返す。
<script> var a = 11; (a < 10) || ( document.write( 'aは10以上' ) ); // (ア) (a < 10) && ( document.write( 'aは10未満' ) ); // (イ) </script>
(ア)は条件式がfalseだからdocument.writeメソッドが実行される。
(イ)は条件式がfasleだから実行されない。
三項演算子
条件式 ? 式1 : 式2
- 条件式は真偽値または真偽値に変換可能な値
- 条件式の値がtrueならば式1を評価した値を返し、全体の値とする
- 条件式の値がfalseならば式2を評価した値を返し、全体の値とする
var num; var sign; num = 100; sign = num >= 0 ? '正' : '負'; document.write("<h1>" + num + "は" + sign + "</h1>"); num = -88; sign = num >= 0 ? '正' : '負'; document.write("<h1>" + num + "は" + sign + "</h1>");
1つめの三項演算子の条件式「num>0」はtrue。だから式1「'正'」が評価されて返される。結果変数signには条件演算子全体の値である'正'が代入される。
2つめは変数numには-88が入っているので条件式はfalse。従って式2「'負'」が評価され返される。