出版社を探す

JavaScript Ninjaの極意 ライブラリ開発のための知識とコーディング

著:ジョン・レシグ
著:ベア・ビボー
訳:吉川 邦夫

紙版

内容紹介

jQueryの開発者が語ったプログラミングの秘密

JavaScriptは現在のホームページ作りには欠かせないプログラミング言語です。GoogleやFacebookなどの先進のWebアプリケーションはjQueryなどのJavaScriptライブラリを利用して作られていますが、本書はjQueryの開発者であるジョン・レシグが自ら書き起こしたJavaScriptの開発技法書です。

JavaScript言語の各種機能の利用方法から、バグ発見の方法、複数ブラウザへの対応方法まで、JavaScript開発者垂涎のテクニックをふんだんに盛り込みました。「Ninja」とは英語圏ではエキスパートやスーパープログラマの意味で使われる言葉です。本書では“モダンJavaScript開発”における一流プログラマの知識をまとめています。

目次

Part1 訓練の準備

第1章 忍者入門1.1 本書で手本とするJavaScript ライブラリ
1.2 JavaScript 言語を理解する
1.3 クロスブラウザ性に関する配慮
1.4 現在のベストプラクティス
1.4.1 現在のベストプラクティス:テスト
1.4.2 現在のベストプラクティス:性能分析
1.5 まとめ

第2章 テストとデバッグの装備2.1 コードをデバッグする
2.1.1 ロギング
2.1.2 ブレークポイント
2.2 テスト生成
2.3 テストフレームワーク
2.3.1 QUnit
2.3.2 YUI Test
2.3.3 JsUnit
2.3.4 新しい単体テストフレームワーク
2.4 テストスイートの基礎
2.4.1 アサート
2.4.2 テストグループ
2.4.3 非同期テスト
2.5 まとめ

Part2 基礎訓練

第3章 関数が肝心3.1 JavaScript の関数は、どこが違うのか
3.1.1 JavaScript の関数的な性質が、なぜ重要なのか?
3.1.2 コンパレータによる比較
3.2 関数の宣言
3.2.1 スコープと関数
3.3 関数の呼び出し
3.3.1 引数から関数のパラメータへ
3.3.2 関数としての呼び出し
3.3.3 メソッドとしての呼び出し
3.3.4 コンストラクタとしての呼び出し
3.3.5 apply()およびcall()メソッドによる呼び出し
3.4 まとめ

第4章 関数を使いこなす4.1 無名関数
4.2 再帰
4.2.1 名前付き関数での再帰
4.2.2 メソッドによる再帰
4.2.3 「参照泥棒」の問題
4.2.4 インラインの名前付き関数
4.2.5 calleeプロパティ
4.3 オブジェクトとしての関数
4.3.1 関数群を収納する
4.3.2 自分をメモ化する関数
4.3.3 配列メソッドをだまして使う
4.4 可変長引数リスト
4.4.1 apply()を使って様々な数の引数を供給する
4.4.2 関数の多重定義
4.5 関数かどうかをチェックする
4.6 まとめ

第5章 クロージャ5.1 クロージャの仕組み
5.2 クロージャを利用する
5.2.1 プライベート変数
5.2.2 コールバックとタイマ
5.3 呼び出しコンテクストをバインドする
5.4 関数の部分適用
5.5 関数の振る舞いをオーバーライドする
5.5.1 メモ化
5.5.2 関数のラッピング
5.6 即時関数
5.6.1 一時的なスコープとプライベート変数
5.6.2 ループ
5.6.3 ライブラリのラッピング
5.7 まとめ

第6章 プロトタイプによるオブジェクト指向6.1 実体化とプロトタイプ
6.1.1 オブジェクトの実体化
6.1.2 コンストラクタ経由で行われるオブジェクトの「型付け」と逆参照
6.1.3 継承とプロトタイプチェーン
6.1.4 HTML DOM のプロトタイプ
6.2 落とし穴に注意!
6.2.1 オブジェクトの拡張
6.2.2 Numberの拡張
6.2.3 ネイティブオブジェクトを継承する
6.2.4 実体化の問題
6.3 クラスに似たコードを書く
6.3.1 関数シリアライズの可能性をチェックする
6.3.2 サブクラスの初期化
6.3.3 「スーパーメソッド」を保存する
6.4 まとめ

第7章 正規表現7.1 正規表現のエレガンス
7.2 正規表現の概要
7.2.1 正規表現の説明
7.2.2 項と演算子
7.3 正規表現のコンパイル
7.4 マッチした部分をキャプチャする
7.4.1 単純なキャプチャを実行する
7.4.2 グローバル正規表現によるマッチ
7.4.3 キャプチャを参照する
7.4.4 キャプチャしないグループ
7.5 置換関数を使う
7.6 一般的な諸問題を正規表現で解決する
7.6.1 文字列のトリミング
7.6.2 改行とのマッチ
7.6.3 Unicode
7.6.4 エスケープされた文字
7.7 まとめ

第8章 スレッドとタイマの扱い方8.1 タイマとスレッドの仕組み
8.1.1 タイマの設定とクリア
8.1.2 スレッド内でのタイマの実行
8.1.3 単発タイマとインターバルタイマの違い
8.2 タイマの最小遅延値と確実性
8.3 計算コストが高い処理に対処する
8.4 タイマの集中管理
8.5 非同期テスト
8.6 まとめ

Part3 忍術修行

第9章 実行時のコード評価9.1 コード評価機構
9.1.1 eval()メソッドによる評価
9.1.2 Functionコンストラクタを介しての評価
9.1.3 タイマによる評価
9.1.4 グローバルスコープでの評価
9.1.5 安全なコード評価
9.2 関数の「逆コンパイル」
9.3 コード評価の実践
9.3.1 JSON を変換する
9.3.2 名前空間を持つコードをインポートする
9.3.3 JavaScript の圧縮と難読化
9.3.4 コードの動的な改訂
9.3.5 アスペクト指向のスクリプトタグ
9.3.6 メタ言語とDSL
9.4 まとめ

第10章 with文10.1 with文の効用
10.1.1 withスコープ内でのプロパティ参照
10.1.2 withスコープ内での代入
10.1.3 性能上の注意事項
10.2 実例
10.3 名前空間を持つコードをインポートする
10.4 テスト
10.5 withによるテンプレーティング
10.6 まとめ

第11章 クロスブラウザ開発の戦略11.1 サポートするブラウザの選択
11.2 開発で主に考慮すべき5 つの事項
11.2.1 ブラウザのバグと相違
11.2.2 ブラウザのバグ修正
11.2.3 外部のコードやマークアップとの共存
11.2.4 欠けている機能
11.2.5 リグレッション
11.3 実装の戦略
11.3.1 安全なクロスブラウザ修正
11.3.2 オブジェクト検出
11.3.3 機能シミュレーション
11.3.4 テストできないブラウザの問題
11.4 想定を切り詰める
11.5 まとめ

第12章 属性、プロパティ、CSS の難関を突破する12.1 DOM における属性とプロパティ
12.1.1 名前のクロスブラウザ性
12.1.2 命名の制限
12.1.3 HTML とXML の違い
12.1.4 カスタム属性の振る舞い
12.1.5 性能に対する配慮
12.2 属性のクロスブラウザ問題
12.2.1 DOM におけるID/名前の増殖
12.2.2 URL の正規化
12.2.3 style属性
12.2.4 type属性
12.2.5 タブインデックス問題
12.2.5 ノード名
12.3 スタイル属性の注意点
12.3.1 スタイルはどこに記録されるか
12.3.2 スタイルプロパティの命名
12.3.3 floatのスタイルプロパティ
12.3.4 ピクセル値の変換
12.3.5 高さと幅の寸法
12.3.6 要素の不透明度
12.3.7 色の様々な表現
12.4 算出スタイルを取り出す
12.5 まとめ

Part4 熟練の技

第13章 イベント処理13.1 イベントハンドラの結合と解除
13.2 Eventオブジェクト
13.3 ハンドラ管理
13.3.1 関連情報を集中管理する
13.3.2 イベントハンドラの管理
13.4 イベントをトリガする
13.4.1 カスタムイベント
13.5 バブリングと委譲
13.5.1 イベントを先祖要素に委譲する
13.5.2 ブラウザの欠陥を回避する
13.6 文書の「レディ」イベント
13.7 まとめ

第14章 DOM 操作14.1 DOMにHTML を注入する
14.1.1 HTML をDOM に変換する
14.1.2 ドキュメントに挿入する
14.1.3 スクリプトの実行
14.2 要素を複製する
14.3 要素を削除する
14.4 テキスト内容
14.4.1 テキストを設定する
14.4.2 テキストを取得する
14.5 まとめ

第15章 CSS セレクタエンジン15.1 W3CのセレクタAPI
15.2 XPath を使って要素を探す
15.3 純粋なDOM による実装
15.3.1 セレクタを解析する
15.3.2 要素を見つける
15.3.3 結果の集合をフィルタにかける
15.3.4 再帰とマージ
15.3.5 ボトムアップ式のセレクタエンジン
15.4 まとめ

ISBN:9784798128450
出版社:翔泳社
判型:B5変
ページ数:440ページ
定価:3400円(本体)
発行年月日:2013年05月
発売日:2013年05月24日
国際分類コード【Thema(シーマ)】 1:UB