前回は、数式を入力して、ブラウザに計算をしてもらった。今度は文字の表示をやってみよう。
プログラミング言語は、本来、文字と数字を区別して扱う。前回の例で計算を行ったけれど、数字のままではそれを画面に表示することができない。だから表示の際には、データを文字として扱わなければならないのだ。
つまり、前回のコード
javascript:1+2;
には、「数字として1+2という計算をした後で、結果の3を文字に変換する」というからくりが背後にあったわけだ。これはJavaScript言語の仕組みが自動的に行ってくれている作業である。(補足1)
では「1+2」という文字の連なりを表示したい時はどうすればいいのか。最初から文字として扱ってほしい場合は、"(ダブルクォート)で前後をくくる。
javascript:"1+2";
どうだろう。意図したとおり、「1+2」と表示されたはずだ。もちろん、
javascript:"やっほー!!";
などとすることもできる。(補足2)
ところで、毎回真っ白な画面が表示されてしまうのは何かと不便だ。そこで、メッセージボックスの中に文字を表示させてみよう。
javascript:window.alert(1+2);
javascript:window.alert("やっほー!!");
ここで、「window.alert( )」というのが一つの命令だ。
「alert( )」のようなもののことを、JavaScriptでは「メソッド」という。
カッコのなかに何かを入れてやると、それに見合った処理をしてくれる命令、それがメソッドだ。メソッドには色々な種類のものがあるので、今後そのうちの一部を紹介していくことにする。
次に、「alert( )」の前についている「window.」は何だろうか。
windowは、alertメソッドの持ち主(動作の主体)だ。この主体のことを、オブジェクトという。もっと厳密に説明すると、オブジェクトとは「メソッドとその他の処理、状態がまとめて記述されているプログラム上の集合体」という感じだろうか。これも色々なものが用意されている。
なんだかちょっと難しげな説明になってしまったので、こう考えてほしい。
「window」はwindowさんという人である。さっきの文「window.alert("やっほー!!");」を人間っぽく言えば、「windowさん、"やっほー!!"をalertしてください」という依頼(あるいは命令)になるわけだ。
実は、「window.」という部分は省略できることになっている。windowはJavaScriptの世界ではとても基本的なオブジェクトなので、書かなくてもそのコードがwindowに向けられたものであることは分かりきっているのだ。
日本語で一人称が省略されがちなのと同じかもしれない。違いは、プログラミング言語の表現は基本的にすべて命令なので、一人称がないことだ。
補足1
CやJava(JavaScriptとは別物)といった言語では、この変換を明示的に指示してあげないといけない。こういった言語を「型に厳密な言語」などという。
補足2
ブラウザの種類やバージョンによっては、日本語を扱えないらしい。うまく表示されなければ、「javascript:"Hello!"」と入れてみてください。