値と式と演算子
値#
次のコードを実行すると、Hello World
が画面に表示されました。
document.write("Hello World");
"Hello World"
のように "
(ダブルクォーテーション)で囲まれた値を、文字列と呼びます。
document.write(3);
演算子を用いると、値を用いて計算をすることができます。例えば +
(加算演算子)で、足し算の計算を行うことができます。
document.write(3 + 4);
演算子の優先順位#
演算子には、優先順位が設定されています。
document.write(3 + 4 * 5);
*
(乗算演算子)は+
より優先順位が高く設定されているため、上記のコードの実行結果は23
となります。
このコードにおいて、3 + 4 * 5
や、4 * 5
、4
を式と呼びます。また、式が計算され、その結果としての値が確定することを式が評価されるといいます。
3 + 4 * 5
の評価は、先に 4 * 5
が評価されて 20
になり、次に 3 + 20
が評価されることにより、23
という値となると考えることができます。
演算子#
いろいろな演算子が適用できるのは、何も数値だけではありません。文字列に適用できる演算子もあります。先ほどの +
(加算演算子)は、文字列同士で使用された場合は、文字列結合演算子となります。
document.write("Hello" + "World");
画面には HelloWorld
と表示されるはずです。
もう少し複雑な例を見てみましょう。
document.write(3 + 4 + "Hello");document.write("Hello" + 1 + 2);
このような場合、演算子の結合規則を考える必要があります。
+
の結合規則は左から右なので、3 + 4 + "Hello"
は (3 + 4) + "Hello"
、"Hello" + 1 + 2
は("Hello" + 1) + 2
と解釈されることになります。
+
は、両辺が数値の場合のみ加算演算子として振る舞い、片方が数値で片方が文字列の場合は数値を文字列に変換してから文字列結合演算子として機能します。このため、最終的な式全体の評価結果は前者が "7Hello"
、後者が "Hello12"
となるのです。