値と式と演算子
次のコードを実行すると、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
と表示されるはずです。それでは、以下の2つのプログラムの実行結果はどうなるでしょうか。
document.write(3 + 4 + "Hello");
document.write("Hello" + 1 + 2);
この場合、演算子の結合規則を考えます。+
の結合規則は左から右なので、3 + 4 + 'Hello'
は(3 + 4) + 'Hello'
、'Hello' + 1 + 2
は('Hello' + 1) + 2
と解釈されることになります。
+
は、両辺が数値の場合のみ加算演算子として振る舞い、片方が数値で片方が文字列の場合は数値を文字列に変換してから文字列結合演算子として機能します。このため、最終的な式全体の評価結果は前者が7Hello
、後者がHello12
となるのです。
改行が表示されず困っていますか?document.write
は HTML タグを出力できます。<br>
を用いたり、p
タグで囲んでみたりしてみましょう。