翔泳社の公式通販SEshopは全国送料無料!
ヘルプ 法人のお客様へ 新規会員登録 ログイン
SEshop

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

吉川 邦夫(翻訳) , 吉川 邦夫(原著) , ベア・ビボー(著) , ジョン・レシグ(著)

商品番号
134250
販売状態
発売中
納品形態
会員メニューよりダウンロード
発売日
2017年05月16日
ISBN
9784798134253
データサイズ
約12.3MB
制限事項
印刷可・テキストのコピー可
キーワード
プログラミング  CodeZine  JavaScript  電子書籍【PDF版】

3,740円(税込)(本体3,400円+税10%)
送料無料

340pt (10%)
ポイントの使い方はこちら

在庫あり

初回購入から使えるポイント500円分プレゼント

紙の書籍はこちら

※1点の税込金額となります。 複数の商品をご購入いただいた場合のお支払金額は、 単品の税込金額の合計額とは異なる場合がございますので、予めご了承ください。

  • ポスト
  • 本製品は電子書籍【PDF版】です。
  • ご購入いただいたPDFには、購入者のメールアドレス、および翔泳社独自の著作権情報が埋め込まれます。
    PDFに埋め込まれるメールアドレスは、ご注文時にログインいただいたアドレスとなります。
    Amazon Payでのお支払いの場合はAmazonアカウントのメールアドレスが埋め込まれます。
  • 本製品を無断で複製、転載、譲渡、共有および販売を行った場合、法律により罰せられる可能性がございます。
  • ご購入の前に必ずPDF利用案内をお読みください。

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

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

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

PDF版のご利用方法

  1. ご購入後、SEshopにログインし、会員メニューに進みます。
  2. ご購入電子書籍およびデータ > [ご購入電子書籍およびダウンロードデータ一覧]をクリックします。
  3. 購入済みの電子書籍のタイトルが表示されますので、リンクをクリックしてダウンロードしてください。
  4. PDF形式のファイルを、お好きな場所に保存してください。
  5. 端末の種類を問わず、ご利用いただけます。

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を勉強したいんだよっていう人にオススメ。読んでて楽しい。

関連商品

おすすめ特集

プログラミング入門書大特集

翔泳社のプログラミング書籍の中から、入門・初級者向けの書籍をピックアップ!

Linuxおすすめ本特集

【Linux本特集】入門~達人レベルまで!クラウド時代の必須知識Linuxを学ぶおすすめの本

ライティングおすすめ本

ライティングのスキルアップにおすすめの本。Webライティングやコピーライティングなど

マネー本特集

お金と経済の基礎知識から、資産形成・投資術、お金教育や介護まで。暮らしに役立つマネー本

インテリア本特集

おしゃれな部屋作りのヒントやインテリアの基礎知識、色使い、うつわや洋食器の知識まで、幅広い書籍をご紹介

事務職におすすめの本

Excel、日商簿記、業務の自動化を実現するRPAやPythonの技術など、事務職としてステップアップしたい人に!

特集をもっと見る