式と演算子


計算する

前回、数値や文字列といったプログラムで使うデータ型を説明しました
コンピュータは、これらを計算することも可能です

計算は、複数のデータと演算子によって構成されるで行います
1 + 2 という式の場合、1や2のようなデータ部分をオペレンドと呼びます
ただし、プログラムの場合は数学と違ってその答えをどこかに渡す必要があります

オペランド 演算子 オペランド

また、式は自由な位置で行うことができます
例えば alert(1 + 2); という式は正しいです
1 + 2 の結果は alert() メソッドに渡されるので 3 と表示されたプロンプトが表示されるでしょう
当然、式は数学的に記述できるので複雑な多項式を書くこともできます

演算子 + などは数学で用いられる記号とほとんど同様です
ただし、乗算(×) はアスタリスク *、除算(÷) はスラッシュ / 記号を使用します
これは JavaScript だけではなく、多くの言語で共通しています

演算子 記号
加算 +
除算 /
剰余 %
乗算 *
減算 -
単項マイナス符号 -

計算順序も数学と同様で、除算や乗算が優先されます
計算順序を変更するには、やはり数学同様に () で式をグループ化します
alert(2 + 2 * 2);
alert((2 + 2) * 2);


このプログラムは、プログラムの演算順序のテストプログラムです
最初のプロンプトは 2 * 2 を計算してから 2 を足すので答えは 6 になりますが
次に表示するプロンプトは 2 + 2 を先に計算して 2 を乗算するため 8 となります

JavaScript はデータ型に柔軟な言語なので
文字列と数値の結合も + 演算子で簡易に実現することができます
+ 演算子の場合は、オペランドの一方でも文字列であれば加算ではなく結合を行います
alert("Kitty on your lap" + " : " + "Tokyo mew mew");
alert("円周率 = " + 3.14);
alert("1" + "1");


最初の文字列どうしの結果はある程度想像できるでしょう
文字列と数値どうしの場合も、双方が文字列として結合されます

最後の "1" + "1" という結果は、文字列型と数値型の本質的な違いを教えてくれます
1 + 1 という結果は 2 になりますが、文字列どうしの "1" + "1" の結果は文字列として結合するため
"11" という文字列に連結して表示されます

結合は簡単ですが、文字列に対して減算処理を行うとどうでしょう?
実はこの場合、文字列が数値として表現できる場合は数値に変換されます
しかし、数値に表現できない場合はエラーとなるので注意してください
基本的に、文字列の疑いのあるデータに対して加算以外の処理は好ましくありません



前のページへ戻る次のページへ