Index

HOME > プログラムTOP > JavaScript




JavaScriptの基礎知識(3):演算子篇

 JavaScriptの言語仕様の基礎知識をまとめたページです。ここでは演算子を取り上げています。JavaScriptには様々な種類の演算子があります。これらを適切に使い分ければ、より効率的なプログラムを組むことができるようになります。また、演算では優先順位にも気を配る必要があります。

sasaraan programming

Exposition

●算術演算子

 算術に使用する演算子は算数と同じです。
  // 足し算 a + b
  // 引き算 a - b
  // 掛け算 a * b
  // 割り算 a / b
  // 余り a % b(aをbで割った余り)

 "+"は文字列の連結にも使います。
 var a = "へのへの" + "もへじ"; // ="へのへのもへじ"

●インクリメント・デクリメント(漸増、漸減)

 インクリメント(++)、デクリメント(--)と呼ばれる独特の演算子もよく使われます。いずれも1を加えるか引くかするだけですが、コードが一行で済むこと、優先的に計算されて安全なことから好んで使われます。
 a++ // aの値を取り出してからaに1を足す
 a-- // aの値を取り出してからaから1を引く
 ++a // aに1を足してからaの値を取り出す
 --a // aから1を引いてからaの値を取り出す

 ややこしいのですが、"a = 5"の時、"a++"も"++a"も計算後のaの値は6となりますが、計算中の"a"の値を取り出すと、それぞれ"5"と"6"になります。
 var a = 5;
 var b = a++;  // =5
 var c = ++a;  // =6

●代入演算子

 プログラムの世界では"="は代入を表します。算術演算子と合わせて使うこともできます。
 =  // a = b : aにbを代入
 += // a += b : aにa+bを代入
 -= // a -= b : aにa-bを代入
 *= // a *= b : aにa*bを代入
 /= // a /= b : aにa/bを代入
 %= // a %= b : aにa%bを代入

●関係演算子

 比較演算子とも言われ、頻繁に使われます。計算の結果は論理値(trueかfalse)となります。
 a == b // aとbが等しければtrue、そうでなければfalse
 a < b  // aがbより小さければtrue、そうでなければfalse
 a <= b // aがb以下ならtrue、そうでなければfalse
 a > b  // aがbより大きければtrue、そうでなければfalse
 a >= b // aがb以上ならtrue、そうでなければfalse

 否定を表す"!"を"="と組み合わせて使いこともあります。
 a != b // aとbが等しくなければtrue、等しければfalse

●論理演算子

 論理演算子は真偽を導き出すため用意されたものです。まず、"!"ですが、真偽の値を否定するための演算子です。
 var m = true;
 var n = !m;  // =false

 上記の様に、trueであればfalseを、falseであればtrueを返します。
 次に、"&&"(かつ)は、二つの式の値を評価します。二つの式がともにtrueならtrueを、どちらかでもfalseならfalseを返します。
 var a = 7;
 var b = 8;
 var c = (a == 7 && b == 8);  // =true
 var d = (a == 1 && b == 8);  // =false

一方で、"||"(または)は、二つの式のうちどちらかがtrueならtrueを返します。falseを返すのは、どちらもfalseの時だけです。
 var e = (a == 7 || b ==11);  // =true
 var f = (a == 9 || b == 3);  // =false

●条件演算子

 条件式を表現するための演算子です。"?"と":"を使って"式? 値1: 値2"の様に記述します。
 var a = 3;
 var b = (a == 3? "3だよ": "3じゃないよ");  // b = "3だよ"

 このように、式がtrueであれば値1を返し、falseであれば値2を返します。
 この演算子はコードが一行で済むので便利なのですが、"if...else..."文でも表せると同時に、演算子の優先順位が低いので、使う時には()で囲むなど、細心の注意が必要です。

●優先順位

 演算は()があれば()の中が最優先で計算されます。それ以外は以下の通りとなります。
 1 ・・・ ++, --, !
 2 ・・・ *, /, %
 3 ・・・ +, -
 4 ・・・ <, >, <=, >=
 5 ・・・ ==, !=
 6 ・・・ &&
 7 ・・・ ||
 8 ・・・ ?:
 9 ・・・ =, +=, -=, *=, /=, %=
 実は、これにより、上記のいくつかの式で()は不要です。
 c = a == 7 && b == 8;
 ただし、分かりにくい時や不安な時は()で囲んでおく方が安全です。

www.sasaraan.net

(c) morijoh