Javascriptはオブジェクト指向という考えを独自の発想で実装したとてもユニークな言語です。
そもそもはWebページに特殊効果を加えるためにネットスケープ社が開発したスクリプト言語ですが、さまざまなIT企業や団体などが仕様を拡張し競争を繰り広げていった結果、今日のユニークなオブジェクト指向言語としてのJavascriptに至りました。
また、最近ではJavascriptから派生したActionScriptというアドビ社の技術がJavascriptエンジンのひとつを開発しているMozilla財団に提供され、ActionScriptの持つ高度なオブジェクト指向をJavascriptに取り入れたまったく新しい「Javascript2.0」が開発されるなど、今日も進歩を続けています。
こうなると気になるのがその互換性ですが、ActionScriptのように1社が開発を進めている言語ではなく、自由競争のもと各社・団体が切磋琢磨して争いを繰り広げている性質上、デベロッパー取り込みのため後方互換性は7,8年ほど前からかなり''確保されるようになってきており、近年とみにその傾向は増しています。
そのため業界におけるJavascriptの信頼度も増し、Microsoft社の.NET Frameworkという次世代プラットフォームにもC#やVB.NET、C++などとともに「JScript」という名前で採用されました。
ゆえにVisualStudio上でJScriptを用いて本格的なWindowsアプリケーションを開発できるようになりました。
このほかにも、Ajaxなどの近年注目されているWeb技術はJacascriptベースのものでありますし、これに伴い新しく開発されるWebプラットフォームや開発環境も''''''Javascriptとの親和性を重視するようになっています。
現在では、乱立するJavascript関連規格をECMA(欧州計算機協会)がECMA-262としてまとめあげ、これに準拠してJavascriptやJScript、ActionScriptのような関連技術は開発されるようになりました。
たとえば、最新のJScriptおよびActionScriptはECMA-262 Edition 4に準拠しています。
そして、IEやFirefoxなどのWebブラウザのほとんどがサポートするJavascript/JScriptはEdition 3に準拠しています
なんといってもJavascriptの特徴は、その学びやすさ、そしてブラウザさえあれば実行でき、開発もメモ帳などテキストエディタしかいらないと言う敷居の低さにあるといえるでしょう。
もともとがVBよりも単純なスクリプト言語であるために、直感的なところからとっかかることができ、またWebデザインにおいて大概のことはその直感的なプログラミングで行えます。
実際、Javascriptに実装された独自のオブジェクト指向機能や、HTTP通信などそのほかの高度な機能は長年多くの開発者に忘れ去られており、Googleの技術者が偶然それに目をつけたのがAjaxと言って注目されたりなどもしているほどです。
それでは、次にJavascriptのオブジェクト指向など高度な機能ですが、これも直感的なプログラミングができるよう独自の実装となっています。
JAVAやC++など多くのプログラミング言語ではオブジェクト指向機能が「機能」として提供されており、キーワードやビルトイン関数などを使いこなすことでクラス化や継承など高度な機能を実現しますが、Javascriptではその多くがC++とは違い最低限の構文としてスマートに言語仕様に組み込まれており、その最低限の構文を直感的に使うだけでオブジェクト指向の機能を実現できるという、よく考えられた言語仕様となっています。
そのため、最初から組み込まれていないクラスの本格的な継承などの機能を、ちょっと頭を使うだけで自作できたりもします。
そのほかにも、Javascriptではできないことになっている機能(演算子のオーバーロードなど)をJavascriptの持つそのユニークな言語仕様を活用することで無理やり実現することもできたりします。
またはじめにで述べたように、Javascriptは関連技術があちこちで採用されているので一度身につけたJavascriptスキルはあちこちの環境で役に立ちます。
ここではWebブラウザで動作するJavascript/JScriptについて解説しますが、このJavascriptはWebページに埋め込んで使う形のスクリプトなので、Webブラウザさえあれば動作するという、ActionScriptよりはるかに低い敷居で提供されています。
JavascriptはWebページに埋め込んで使う形のスクリプト言語なので、IE(インターネットエクスプローラ)やFirefoxなど、あなたがいつもインターネットをするときに使っている「Webブラウザ」というソフトウエアさえあれば動きます。
開発にはメモ帳などテキストエディタしか必要ありません。
C言語などと違い、Javascriptは「スクリプト言語」といい、書いたコードがそのまま動くタイプの言語なので、コンパイラなどの特別なソフトウエアも一切必要ありません。
JavascriptはWebページに埋め込んで使う形のスクリプトですので、必然的に動作にはJavascriptコード以外のHTML(Webページを作る言語)のコードも必要です。
そのため、以下のHello Worldスクリプトは長々と行数がありますが、有効なJavascriptコードはたったの1行です。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head><title>Javascriptテスト</title> <script type="text/javascript"> document.write("hello world!"); </script> </head> <body><p> </p></body> </html>
これを書いたら、「Hello.html」という名前にして保存。
「Hello」の部分は何でもよいのですが、「.html」を必ずファイル名の末尾につけてください。
そして、保存したファイルをダブルクリックするとWebブラウザが開いて「hello world!」と表示されるはずです。
・ソースの解説
1行目 | DTD宣言。HTML文書の先頭で行う。 |
2行目 | HTML開始タグ。 |
3行目 | HEAD開始タグ。<head>以下の記述がHTML文書のうちのヘッダ部分(本文表示と直接は関係ない、スタイルシートやスクリプト、文書の著作者などの情報が欠かれている部分)であることを意味する。~また、TITLEは、HTML文書のタイトル名をあらわしている。 |
4行目 | SCRIPT開始タグ。<script (中略)>以下の記述がJavascript言語によるスクリプトコードであることをあらわしている。 |
5行目 | Javascriptコード。「hello world!」とドキュメント(文書)に出力する命令。末尾の「;」は1命令文の終了を表している。 |
6行目 | SCRIPT終了タグ。以上の記述がJavascript言語によるスクリプトコードであることをあらわしている。 |
7行目 | HEAD終了タグ。<head>から</head>までの記述がHTML文書のヘッダ部分であることをあらわす。 |
8行目 | BODY開始タグ。<body>から</body>まで部分はブラウザに直接表示される内容をあらわしている。~中身が空ではいけないというルールがあるのでPを入れているが特に意味はない。 |
9行目 | HTML終了タグ。 |
ここではHTMLの解説は行いません。HTMLに関してはHTMLとCSSのページを参照して下さい。
基礎のレベルや逆引きリファレンスから、詳細なリファレンスまですべてそろっているJavascript解説サイト。最初からこれを紹介しろよって感じですねw