マーリンアームズ サポート   翻訳   コンサル   講座   アプリ   コラム
JavaScript講座     辞書サイト

初めてのJavaScript 第2版    Shelley Powers著    武舎広幸+武舎るみ訳

まえがき

JavaScriptは当初、ブラウザ(当時はNetscape Navigator)に表示されるウェブページと、サーバ上のアプリケーションとの仲介役となることを意図して開発されました。1995年の登場以来、ウェブにおいて非常に重要な位置を占めているだけでなく、他の分野でも応用されるようになりました。

この本では、プログラミング言語であるJavaScriptについて、最初期から現在まで言語の中核にある基本データ型から、Ajaxや動的なページ効果など非常に複雑な事柄までを取り上げて解説します。この本を読めば、きわめて高機能のライブラリやウェブアプリケーションの開発にかかわる際にも十分な基礎知識が身につきます。

対象読者

この本は、CSSやHTML/XHTMLなど、ウェブページ作成の基本を理解している方を対象にしています。プログラミングの経験が豊富である必要はありませんが、未経験の場合はほかの資料を参照する必要があるかもしれません。なお、訳者が提供するサポートページに、HTML/CSSおよびプログラミングに関する基礎知識の解説がありますので、必要に応じて参照してください。

この本は次のような方々の助けとなるでしょう。

本書について

前述のとおり、この本の対象読者は、「ウェブアプリケーションのおおよその仕組みを理解しており、HTMLとCSSを使った経験のある方」です。ほかのプログラミング言語を利用した経験があった方がよいでしょうが、未経験の方はサンプルコードをしっかりと読み、変更を行って自分のものにしていくようにしてください。また、不明な点が出てきたら場合はサポートページなどで提供されている資料を参照して解決するようにしてください。

この本ではJavaScriptのあらゆる側面を扱っており、中には比較的高度な内容もあります。難解な事柄はほとんどありませんが、Ajaxライブラリを利用できるようになるのに必要な知識が身につくはずです。

開発環境

JavaScriptを扱うというのは、ことのほか手腕を問われる作業となり得ます。というのは、各種のコンピュータで動き、しかも数種のブラウザに対応できるアプリケーションを作らなければならないからです。あるサイトのウェブサーバのログファイルを見れば、IE 5のように非常に古いブラウザと同時にGoogle Chromeのように比較的最近登場したブラウザからもアクセスがあることがわかるでしょう。

可能性のあるOSとブラウザのすべてを対象としてJavaScriptでプログラムを書こうとすると、身動きが取れなくなる恐れがありますから、自分のウェブページにアクセスしそうな人々の大半が使用していそうなブラウザ群を「ターゲットブラウザ」として選び、これを使ってアプリケーションのテストを行うとよいでしょう。古い方のブラウザではアプリケーションが動かないこともあるでしょうが、すべての人々のすべての環境をサポートすることは事実上不可能です。

この本では翻訳時点で以下のブラウザの最新版で動作を確認していますが、少し古いブラウザ、たとえば、IEについていえばIE 6.xでも動作を確認するよう努めました。対象としたブラウザとその入手先のURLを以下にあげておきます。

JavaScriptとブラウザという環境は非常に変化の激しいものですから、JavaScriptに関する本の執筆は格別に難しく、大変な作業となりました。JavaScriptの最新情報を提供するよう努めはしましたが、JavaScriptの仕様(より正確にはECMAScriptの仕様)も変化しています。しかも、ブラウザのメーカーは常に新バージョンを発表しつづけています。したがって、読者がこの本を読むときには状態が変化しているかもしれません。

とはいえ、私が焦点を当てた題材の大半は「クラシカルな」JavaScriptについて書かれたものですから、ある意味安定していると同時に、新しいブラウザやJavaScriptの基盤となっているものです。すべてとは言わないまでも、大部分の例は、将来のバージョンでも動くはずです。

本書の構成

この本は全体で15章ありますが、大きく6つの部分に分けられます。

1章から3章までは基礎知識の紹介です。基本的な構文や制御構造、JavaScriptがサポートする基本データ型など、JavaScriptプログラムの構造について説明します。

4章と5章では、JavaScriptにあらかじめ備わっているオブジェクト -- Math、RegExp(正規表現のオブジェクト)、Array、それに非常に重要なFunctionなどに加えて、基本データ型に対応するオブジェクトであるString、Number、Booleanについて説明します。

6章では、より複雑なスクリプト例の解説に入る前に、JavaScriptの内容についての説明をひと休みして、ブラウザのデバッグツールやトラブルシューティングについて紹介します。

7章ではイベント処理を、そして8章では話をさらに進めてフォームに関連するイベントとその応用について解説します。

9章から11章では、ウェブページ開発の、より高度な側面について解説します。ブラウザオブジェクトモデル(BOM)と、新しいドキュメントオブジェクトモデル(DOM)を紹介し、カスタムオブジェクトの作り方を学びます。ウィンドウの生成、ページ要素の参照や動的生成などを行うのに必要な知識です。さらに、オブジェクトのカスタマイズにより、言語やブラウザにあらかじめ組み込まれた機能を超えることが可能になります。 また、クッキーをはじめとするクライアント側のストレージ技術についても学びます。

12章から15章では、動的なページ効果やAjaxなど、JavaScriptの高度な使い方を紹介します。AjaxアプリケーションでXMLやJSONなどのデータ形式を利用する方法についても学びます。

各章の内容

1章 JavaScriptの第一歩
JavaScriptについて紹介し、ごく小規模なウェブアプリケーションの例を見ます。また、JavaScriptのアプリケーションに適したプログラミング手法など、JavaScriptの開発に関連する話題も取り上げます。

2章 データ型と変数
JavaScriptの変数、識別子、文の構造、基本データ型について説明します。

3章 演算子と文
代入文、条件文、制御構造、各種の演算子など、JavaScriptプログラムの部品となる要素を説明します。

4章 JavaScriptオブジェクト
JavaScript言語にあらかじめ備わっている、Number、String、Boolean、Data、Mathなどのオブジェクトについて説明します。このほか、パターンマッチングに必要な正規表現のオブジェクトRegExpについても紹介します。

5章 関数
JavaScriptの関数について説明します。JavaScriptでは、関数もオブジェクトとして扱われ、カスタムオブジェクトやライブラリの作成には欠かせないものです。

6章 トラブルへの対処、デバッグ、異種ブラウザ間の問題
ブラウザを使ったデバッグ環境について簡単に説明します。また、特定ブラウザに依存しない開発の基礎も紹介します。

7章 イベント
イベント処理に関する章です。従来型のイベント処理のほか、比較的新しいDOMベースのイベント処理についても紹介します。

8章 フォームと検証
フォーム関連の要素のJavaScriptによる処理方法を説明します。各フィールドへのアクセス方法や入力されたデータの検証方法などを紹介します。サーバにフォームを送信する前にJavaScriptによる検証を行うことで、より使いやすいシステムが実現できます。また、フォームに関連するセキュリティに関わる問題についても簡単に説明します。

9章 ブラウザオブジェクトモデル
JavaScriptとブラウザオブジェクトモデル(BOM)の関係を説明します。ウィンドウ、ドキュメント、フォーム、履歴、URL などは、すべて階層構造をなすオブジェクトモデルとして抽象化されています。BOMを介して、JavaScriptからウィンドウをオープンしたり、フォームやリンクの内容を参照したり、変更したりすることができます。

10章 クッキーとその後継技術
JavaScriptを使ったクッキーの処理、JavaScriptの安全性の基礎となるサンドボックスなどについて説明します。クッキーを利用することにより、利用者が入力した情報を、セッションをまたいで記憶しておくことが可能になります。 また、この章では新しいクライアント側のストレージ技術についても簡単に紹介します。

11章 ドキュメントオブジェクトモデル
ドキュメントオブジェクトモデル(DOM)について説明します。W3CによるDOMの策定により、ブラウザに依存しないドキュメント操作の基盤が整いました。

12章 動的なページの作成
ウェブページをダイナミックに変更する方法を概説します。個々の要素のスタイルを変更したり、要素を追加、削除したりする方法などです。ドラッグ&ドロップ、セクションの折りたたみや拡張、透明度などの効果について説明します。この章を理解するにはCSSの知識が必要です。

13章 カスタムオブジェクトと例外の処理
カスタムオブジェクトの作成方法を説明します。JavaScriptがもつプロトタイプ機能について詳しく説明し、これを利用して独自のオブジェクトを作成する方法を紹介します。 また、例外についても触れます。

14章 Ajaxの基礎
Ajaxの基本を紹介します。言葉だけを聞くと、最先端の難しい技術のように思えるかもしれませんが、実は従来から存在する、基本的な技術の組み合わせにすぎません。サーバ側のコードも含めて実際の動作例を見ながらAjaxの技術的な構成要素を紹介します。

15 章 Ajaxのデータ -- XMLかJSONか
HTML形式のデータを使ってAjaxの紹介をした14章の例を利用して、AjaxのアプリケーションでXMLを生成、処理する方法を紹介し、さらにJSONで同じことを行う方法も紹介します。それぞれの技法の長所と短所について議論します。