JavaScriptの概要

JavaScriptの変遷

JavaScriptの起源は,Netscape Navigatorがベータ版のときに実装したLive Scriptです.また,Internet Explorerも似たものとしてJScriptを開発しました.

ブラウザのバージョンアップに伴ってお互いのスクリプトが進化しましたが,各社が独自の機能を付け加えていったために,ページ作成者はブラウザ別にページを作る必要に迫られました.互換性の問題を解決するため,国際標準化団体のECMAがスクリプトを融合したECMAScriptを制定しました.これはJavaScript 1.1と非常に似ており,今後のスクリプトはECMAScriptをベースにして進歩していくと考えられます.

JavaScriptはスクリプト言語で,クライアント側(UA側)で動作するため,サーバに負担をあまりかけません.ただし,セキュリティの問題から,UAの動作しているマシンからcookie以外の情報を読み書きすることはできません.また,スクリプトのコードは基本的に隠せません.

オブジェクト指向

JavaScriptはオブジェクト指向を一部取り入れています.オブジェクトにはメソッドとプロパティがあり,オブジェクトとは「物」のことです.オブジェクトをエアコンとすれば,メソッドはリモコンのスイッチ,プロパティは設定温度等の値です.

例えば,エアコンオブジェクト ac と温度を設定するメソッド config があり,オブジェクト ac には温度というプロパティがあるとします.このとき,エアコンの温度を25[℃]に設定する命令は ac.config(25); と(概念的に)表せます.

JavaScriptにはwindowオブジェクトがあり,これはUAそのものと考えて差し支えありません.windowオブジェクトの下には,さらに別のオブジェクトやメソッドがありますが,その中にdocumentオブジェクトがあります.これはUAXHTML文章を表示する部分と考えて下さい.

documentオブジェクトの下に用意されているメソッドには文章を表示するwriteメソッドがあります.こんにちは と表示する命令は window.document.write("こんにちは"); と書きます.

なお,windowオブジェクトに限ってオブジェクト名の記述を省略できるため, document.write("こんにちは"); とも書けます.

JavaScriptの記述方法

XHTML文章中に記述する

<script type="text/javascript"> <![CDATA[ (※) ]]> </script>

(※)の部分にスクリプトを記述します.この部分に文字列 ]]> や半角文字の<や&を書くことはできません.

多くのUAで未対応のようです.

JavaScripthead要素とbody要素の中なら,基本的にはどこでも書けますが,ページの読み込み前に実行したい場合はhead要素内に書きます.

外部ファイルを使う

<script src="hogehoge.js" type="text/javascript"></script>

スクリプトが書かれたhogehoge.jsファイルを読み込み,XHTML文章に実装します.通常,ファイルの拡張子はjsにして,スクリプトを直接書きます.

スクリプトが動作しない場合

<noscript>(※)</noscript>

スクリプトに対応していないUAや,UAの利用者がスクリプトを動作しない設定にしている場合,noscript要素の中に書かれた内容が表示されます.(※)の部分にはXHTMLの要素も使えます.ただし,スクリプトが動作しないと閲覧できないページは,アクセシビリティの観点から望ましくありません.なお,この要素はscript要素の外で記述します.

その他

コメント

スクリプト中にはコメントをつけられます.コメントはスクリプトの動作と一切関係しません.

// スラッシュを2つ続けて書くと,その行はコメントとなります. document.write("サンプル"); // 行の途中からも書けます. /*このような形式のコメントもあります.*/ /* この形式のコメントは 複数行に渡って記述できます. */

with

同じオブジェクトのメソッドを連続して記述するときに便利です.例えば,document.writeを連続して書くときは,

with(document){ write("サンプルA"); write("サンプルB"); }

とします.with文はネストできます.