JavaScript Ninjaの極意 ライブラリ開発のための知識とコーディング(吉川 邦夫 吉川 邦夫 ベア・ビボー ジョン・レシグ)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. JavaScript Ninjaの極意 ライブラリ開発のための知識とコーディング

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

翻訳
原著


形式:
書籍
発売日:
ISBN:
9784798128450
定価:
3,740(本体3,400円+税10%)
仕様:
B5変・464ページ
カテゴリ:
Webプログラミング
キーワード:
#Web・アプリ開発,#プログラミング,#ネットワーク・サーバ・セキュリティ,#開発手法
紙の書籍

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 まとめ

付属データはこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。
この商品の「よくある質問」はありません。
正誤表の登録はありません。

感想・レビュー

しんしん さん

2015-09-01

「JavaScript使いのJavaScript知らず」がプログラマの中でも多いような気がする。恥ずかしながら自分もその一人だ。この本はコードを追って納得しながらJavaScriptのことを深く知れるすごい本だ。

Masahiro Oono さん

2020-02-03

Part2のシングルスレッドにおけるタイマの振る舞いと非同期イベントの進行との関係についてや、プロトタイプによるオブジェクト指向について、クロージャについての詳しい解説が特に有益だった。Part3以降は流し読み。

tsq さん

2017-05-02

こういうのが読みたかったんだよ。DOMじゃなくてjavascriptを勉強したいんだよっていう人にオススメ。読んでて楽しい。