はじめに
JavaScriptは、当初、ブラウザ(当時はNetscape Navigator)に表示されたウェブページと、サーバ上のアプリケーションとを仲介するインタフェースとなることを意図して開発されました。1995年の登場以来、ウェブにおいて非常に重要な位置を占めているだけでなく、これ以外の分野でも活用されるようになりました。
この本では、プログラミング言語であるJavaScriptについて、最初期から現在まで言語の中核にある基本データ型から、AjaxやDHTML関連の機能など非常に複雑な事柄までを取り上げて解説します。この本を読めば、きわめて高機能のライブラリやウェブアプリケーションの開発に関わる際にも十分な基礎知識が身に着きます。
対象読者
この本は、CSSやHTML/XHTMLなど、ウェブページ作成の基本を理解している方を対象にしています。ウェブページ作成の場面で、すでにJavaScriptのプログラムを何度か目にしていることでしょう。プログラミングの経験は豊富である必要はありませんが、未経験の場合はほかの資料を参照する必要があるかもしれません。
この本は次のような方々の助けとなるでしょう。
・自分のウェブサイトにJavaScriptのプログラムを組み込みたいと考えている人、組み込む必要がある人
・ブログ作成ツールなどのコンテント管理ツールを使っており、そのツールのテンプレートに組み込まれているスクリプト作成用コンポーネントをきちんと理解したい人
・開発中のウェブサイトにDHTMLやAjaxの機能を組み込みたいと考えているウェブ開発者
・新たなクライアント市場を対象にした開発を計画しているウェブサービス開発者
・ウェブ関連技術の授業・講義を担当している教育関係者
・ウェブページに特殊効果や対話性を加えて、より優れたデザインのサイトを構築したいと考えるウェブデザイナー
・ウェブ関連技術に関心があるすべての人
この本について
前述のとおり、この本の対象読者は、「ウェブアプリケーションのおおよその仕組みを理解しており、HTMLとCSSを使った経験のある方」です。プログラミングの経験は必要ありませんが、この本ではJavaScriptのあらゆる側面を扱っており、中には比較的高度な内容もあります。難解な事柄はほとんどありませんが、Ajaxライブラリを利用できるようになるのに必要な知識が身に付くはずです。
1章から3章までは基礎知識の紹介です。基本的な構文や制御構造、JavaScriptがサポートする基本データ型など、JavaScriptプログラムの構造について説明します。
4章から8章では、JavaScriptの主要オブジェクトを紹介します。重要な関数、スクリプトを使ったフォームの処理、イベント処理、セキュリティ、クッキーの使用法などを学びます。JavaScriptの中核となるテーマで、この5つの章を読めば、自分のJavaScriptライブラリの作成も可能になるでしょう。ここで紹介する機能は、これまでの10年間、JavaScriptの基本として使われてきたもので、さらに今後最低10年間は基本であり続けると思われるものです。
9章から11章では、ウェブページ開発の、より高度な側面について解説します。ブラウザオブジェクトモデル(BOM)と、新しいドキュメントオブジェクトモデル(DOM)を紹介し、カスタムオブジェクトの作り方を学びます。ウィンドウの生成、ページ要素の参照や動的生成などを行うのに必要な知識です。さらに、オブジェクトのカスタマイズにより、言語やブラウザにあらかじめ組み込また機能を超えることが可能になります。
12章から14章では、DHTML、Ajax、およびその両者をサポートする多数の新しくすばらしいライブラリなど、JavaScriptの高度な使い方を紹介します。
1章 JavaScriptの第一歩
JavaScriptについて紹介し、小規模なウェブアプリケーションの例を見ます。また、セキュリティの問題やユニバーサルアクセス、開発用ツールなど、JavaScriptの開発に関連する話題も取り上げます。
2章 データ型と変数
JavaScriptの変数、識別子、文の構造、基本データ型について説明します。
3章 演算子と文
代入文、条件文、制御構造、各種の演算子(オペレータ)など、JavaScriptプログラムの部品となる要素を説明します。
4章 JavaScriptオブジェクト
JavaScript言語にあらかじめ備わっている、Number、String、Boolean、Data、Mathなどのオブジェクトについて説明します。このほか、フォーム関連の処理などで欠かすことのできない正規表現のオブジェクトRegExpについても紹介します。
5章 関数
JavaScriptの関数について説明します。JavaScriptでは、関数もオブジェクトとして扱われ、カスタムオブジェクトやライブラリの作成には欠かせないものです。JavaScriptの関数は、見かけは単純ですが複雑な側面も持っています。再帰や関数クロージャなどについては11章でも、さらに詳しく説明します。
6章 イベント
イベント処理に関する章です。従来型のイベント処理のほか、比較的新しいDOMベースのイベント処理についても紹介します。
7章 フォームとJiT検証
フォーム関連の要素のJavaScriptによる処理方法を説明します。各フィールドへのアクセス方法や入力されたデータの検証方法などを紹介します。サーバにフォームを送信する前にJavaScriptによる検証を行うことで、より使いやすしシステムが実現できます。
8章 サンドボックスとクッキー
JavaScriptを使ったクッキーの処理、JavaScriptの安全性の基礎となるサンドボックスなどについて説明します。クッキーを利用することにより、利用者が入力した情報を、セッションをまたいで記憶しておくことが可能になります。
9章 ブラウザオブジェクト
JavaScriptとブラウザオブジェクトモデル(BOM)の関係を説明します。ウィンドウ、ドキュメント、フォーム、履歴、URLなどは、すべて階層構造をなすオブジェクトモデルとして抽象化されています。BOMを介して、JavaScriptからウィンドウをオープンしたり、フォームやリンクの内容を参照したり、変更したりすることができます。
10章 ドキュメントオブジェクトモデル
ドキュメントオブジェクトモデル(DOM)について説明します。W3CによるDOMの策定により、ブラウザに依存しないドキュメント操作の基盤が整いました。
11章 カスタムオブジェクトの作成
カスタムオブジェクトの作成方法を説明します。JavaScriptがもつプロトタイプ機能について詳しく説明し、これを利用して独自のオブジェクトを作成する方法を紹介します。
12章 スタイルの操作
ページ要素のスタイルをJavaScriptから操作することにより、ドラッグ&ドロップ、特定要素の隠蔽・再表示、特殊効果などの機能を使った動的なページの生成が可能になります。この章の内容の理解には、CSSに関する知識が必要です。
13章 Ajaxの基礎
Ajaxの基本を紹介します。言葉だけを聞くと、最先端の難しい技術のように思えるかもしれませんが、じつは従来から存在する、基本的な技術の組み合わせにすぎません。例を見ながらAjaxの技術的な構成要素を紹介し、最後にそのもっとも有名な応用例であるGoogleマップについても紹介します。
14章 JavaScriptライブラリ
人気の高いJavaScriptライブラリをいくつか紹介し、その利用方法を解説します。Prototype,Rico,Dojo,MochiKit,Yahoo!
UIなど無料で利用できるライブラリを使うことにより、面白く有用な機能が簡単に追加できます。