書籍概要

パーフェクト

パーフェクトJavaScript

著者
発売日
更新日

概要

1冊で言語仕様から最新の技術までを網羅した内容です。本書はJavaScriptで本格的なWebアプリケーションを作りたい人を対象に,前半でJavaScriptの言語仕様を掘り下げて解説し,後半で今求められるJavaScriptの応用分野として,クライアントサイドJavaScript,HTML5,Web APIの利用,サーバサイドJavaScriptの解説を丁寧に行っています。

こんな方におすすめ

  • JavaScriptの入門書を読んだことがあり,JavaScriptの本質をより完全に理解したいと思っている人
  • 日常的にJavaScriptを使っているが,知識にあやふやな部分があり不安のある人
  • 他のプログラミング言語を使いこなしているが,JavaScriptはなんとなく使っている人

目次

Part1 JavaScript~overview

1章 JavaScriptの概要

  • 1-1 JavaScriptの見方
  • 1-2 JavaScriptの歴史
    • 1-2-1 JavaScriptのトピック
  • 1-3 ECMAScript
    • 1-3-1 JavaScriptの標準化
    • 1-3-2 見送られたECMAScript第4版
  • 1-4 JavaScriptのバージョン
  • 1-5 JavaScript処理系
    • 1-5-1 クライアントサイドJavaScriptコードの移植性
  • 1-6 JavaScript実行環境
    • 1-6-1 コア言語
    • 1-6-2 ホストオブジェクト
  • 1-7 JavaScript周辺環境
    • 1-7-1 ライブラリ
    • 1-7-2 ソースコード圧縮
    • 1-7-3 統合開発環境(IDE)

Part2 JavaScript言語仕様

2章 JavaScriptの基礎

  • 2-1 JavaScriptの特徴
  • 2-2 表記について
    • 2-2-1 Print関数
  • 2-3 変数の基礎
    • 2-3-1 変数の使い方
    • 2-3-2 varの省略
    • 2-3-3 定数
  • 2-4 関数の基礎
    • 2-4-1 関数とは
    • 2-4-2 関数宣言と呼び出し
    • 2-4-3 関数リテラル
    • 2-4-4 関数はオブジェクト
  • 2-5 オブジェクトの基礎
    • 2-5-1 オブジェクトとは
    • 2-5-2 オブジェクトリテラル式とオブジェクトの利用
    • 2-5-3 プロパティアクセス
    • 2-5-4 プロパティアクセス(ブラケット)
    • 2-5-5 メソッド
    • 2-5-6 new式
    • 2-5-7 クラスとインスタンス
    • 2-5-8 クラス機能の整理方法
    • 2-5-9 オブジェクトと型
  • 2-6 配列の基礎
  • ▽▽コラム イディオム

3章 JavaScriptの型

  • 3-1 型とは
    • 3-1-1 型に関してJavaとの比較
    • 3-1-2 基本型と参照型
  • 3-2 組み込み型の概要
    • 3-2-1 JavaScriptの基本型
  • 3-3 文字列型
    • 3-3-1 文字列値リテラル
    • 3-3-2 文字列型の演算
    • 3-3-3 文字列型の比較
    • 3-3-4 文字列クラス(Stringクラス)
    • 3-3-5 文字列オブジェクト
    • 3-3-6 文字列値と文字列オブジェクトの混乱の回避
    • 3-3-7 String関数呼び出し
    • 3-3-8 Stringクラスの機能
    • 3-3-9 非破壊的なメソッド
  • 3-4 数値型
    • 3-4-1 数値リテラル
    • 3-4-2 数値型の演算
    • 3-4-3 浮動小数点数の一般的注意
    • 3-4-4 数値クラス(Numberクラス)
    • 3-4-5 Number関数呼び出し
    • 3-4-6 Numberクラスの機能
    • 3-4-7 境界値と特別な数値
    • 3-4-8 NaN
  • 3-5 ブーリアン型
    • 3-5-1 ブーリアン値
    • 3-5-2 ブーリアンクラス(Booleanクラス)
    • 3-5-3 Booleanクラスの機能
  • 3-6 null型
  • 3-7 undefined型
    • 3-7-1 undefined値
  • 3-8 オブジェクト型
    • 3-8-1 関数型
  • 3-9 型変換
    • 3-9-1 文字列値から数値の型変換
    • 3-9-2 数値から文字列値の型変換
    • 3-9-3 型変換のイディオム
    • 3-9-4 ブーリアン型への型変換
    • 3-9-5 その他の型変換
    • 3-9-6 オブジェクト型から基本型への型変換
    • 3-9-7 基本型からオブジェクト型への型変換
  • コラム JavaScriptのプロファイラ

4章 文、式、演算子

  • 4-1 式と文の構造
  • 4-2 予約語
  • 4-3 識別子
  • 4-4 リテラル表記
  • 4-5 文とは
  • 4-6 ブロック文(複合文)
  • 4-7 変数宣言文
  • 4-8 関数宣言文
  • 4-9 式文
  • 4-10 空文
  • 4-11 制御文
  • 4-12 if-else文
  • 4-13 switch文
  • 4-14 繰り返し文
  • 4-15 while文
  • 4-16 do-while文
  • 4-17 for文
    • 4-17-1 for文のイディオム
  • 4-18 for in文
    • 4-18-1 配列とfor in文
    • 4-18-2 for in文に関する注意点
  • 4-19 for each in文
  • 4-20 break文
  • 4-21 continue文
  • 4-22 ラベルを使ったジャンプ
  • 4-23 return文
  • 4-24 例外
  • 4-25 その他
  • 4-26 コメント
  • 4-27 式
  • 4-28 演算子
  • 4-29 式の評価
  • 4-30 演算子の優先順序と結合規則
  • 4-31 算術演算子
  • 4-32 文字列連結演算子
  • 4-33 同値演算子
  • 4-34 比較演算子
  • 4-35 in演算子
  • 4-36 instanceof演算子
  • 4-37 論理演算子
  • 4-38 ビット演算子
  • 4-39 代入演算子
  • 4-40 算術代入演算子
  • 4-41 条件演算子(3項演算子)
  • 4-42 typeof演算子
  • 4-43 new演算子
  • 4-44 delete演算子
  • 4-45 void演算子
  • 4-46 カンマ(,)演算子
  • 4-47 ドット演算子とブラケット演算子
  • 4-48 関数呼び出し演算子
  • 4-49 演算子と型変換の注意点

5章 変数とオブジェクト

  • 5-1 変数の宣言
  • 5-2 変数と参照
    • 5-2-1 関数の引数(値渡し)
    • 5-2-2 文字列と参照
    • 5-2-3 オブジェクトと参照にまつわる用語の整理
  • 5-3 変数とプロパティ
  • 5-4 変数名の解決
  • 5-5 変数の存在チェック
    • 5-5-1 プロパティの存在チェック
  • 5-6 オブジェクトとは
    • 5-6-1 抽象データ型とオブジェクト指向
    • 5-6-2 インスタンスの協調とオブジェクト指向
  • 5-7 オブジェクトの生成
    • 5-7-1 オブジェクトリテラル
  • コラム 関数の多値の返り値を受け取るJavaScript独自拡張
    • 5-7-2 コンストラクタとnew式
    • 5-7-3 コンストラクタとクラス定義
  • 5-8 プロパティのアクセス
    • 5-8-1 プロパティ値の更新
    • 5-8-2 ドット演算子とブラケット演算子の使い分け
    • 5-8-3 プロパティの列挙
  • 5-9 連想配列としてのオブジェクト
    • 5-9-1 連想配列
    • 5-9-2 連想配列としてオブジェクトの注意点
  • 5-10 プロパティの属性
  • 5-11 ガベージコレクション
  • 5-12 不変オブジェクト
    • 5-12-1 不変オブジェクトとは
    • 5-12-2 不変オブジェクトの有用性
    • 5-12-3 不変オブジェクトの手法
  • 5-13 メソッド
  • 5-14 this参照
    • 5-14-1 this参照の規則
    • 5-14-2 this参照の注意点
  • 5-15 applyとcall
  • 5-16 プロトタイプ継承
    • 5-16-1 プロトタイプチェーン
    • 5-16-2 プロトタイプチェーンの具体例
    • 5-16-3 プロトタイプ継承とクラス
    • 5-16-4 プロトタイプチェーンのよくある勘違いと__proto__プロパティ
    • 5-16-5 プロトタイプオブジェクト
    • 5-16-6 プロトタイプオブジェクトとECMAScript第5版
  • 5-17 オブジェクトと型
    • 5-17-1 型判定(constructorプロパティ)
    • 5-17-2 constructorプロパティの注意点
    • 5-17-3 型判定(instanceof演算とisPrototypeOfメソッド)
    • 5-17-4 型判定(ダックタイピング)
    • 5-17-5 プロパティの列挙(プロトタイプ継承を考慮)
  • 5-18 ECMAScript第5版のObjectクラス
    • 5-18-1 プロパティオブジェクト
    • 5-18-2 アクセッサ属性
  • コラム その他の型判定
  • 5-19 標準オブジェクト
  • 5-20 Objectクラス
  • コラム オブジェクトの互換性
  • 5-21 グローバルオブジェクト
    • 5-21-1 グローバルオブジェクトとグローバル変数
    • 5-21-2 Mathオブジェクト
    • 5-21-3 Errorオブジェクト

6章 関数とクロージャ

  • 6-1 関数宣言文と関数リテラル式
  • 6-2 関数呼び出しの整理
    • 6-2-1 関数宣言文の巻き上げ
  • 6-3 引数とローカル変数
    • 6-3-1 argumentsオブジェクト
    • 6-3-2 再帰関数
  • 6-4 スコープ
    • 6-4-1 Webブラウザとスコープ
    • 6-4-2 ブロックスコープ
    • 6-4-3 letとブロックスコープ
    • 6-4-4 入れ子の関数とスコープ
    • 6-4-5 シャドーイング
  • 6-5 関数はオブジェクト
    • 6-5-1 関数名とデバッグ容易性
  • 6-6 Functionクラス
    • 6-6-1 Functionクラスの継承
  • 6-7 入れ子の関数宣言とクロージャ
    • 6-7-1 クロージャの表層的な理解
    • 6-7-2 クロージャの仕組み
    • 6-7-3 クロージャの落とし穴
    • 6-7-4 名前空間の汚染を防ぐ
    • 6-7-5 クロージャとクラス
  • コラム 式クロージャ
  • 6-8 コールバックパターン
    • 6-8-1 コールバックと制御の反転
    • 6-8-2 JavaScriptとコールバック
  • コラム イベントリスナ風の実装

7章 データ処理

  • 7-1 配列
    • 7-1-1 JavaScriptの配列
    • 7-1-2 配列の要素アクセス
    • 7-1-3 配列の長さ
    • 7-1-4 配列の要素の列挙
  • コラム 配列の長さの上限
    • 7-1-5 多次元配列
    • 7-1-6 配列はオブジェクト
    • 7-1-7 Arrayクラス
    • 7-1-8 配列オブジェクトの意味
    • 7-1-9 配列のイディオム
    • 7-1-10 配列の内部
    • 7-1-11 配列風のオブジェクト
    • 7-1-12 イテレータ
    • 7-1-13 ジェネレータ
    • 7-1-14 配列の内包
  • 7-2 JSON
    • 7-2-1 JSON文字列
    • 7-2-2 JSONオブジェクト
  • 7-3 日付処理
    • 7-3-1 Dateクラス
  • 7-4 正規表現
    • 7-4-1 正規表現とは
    • 7-4-2 正規表現の用語
    • 7-4-3 正規表現の文法
    • 7-4-4 JavaScriptの正規表現
    • 7-4-5 正規表現プログラミング
    • 7-4-6 文字列オブジェクトと正規表現オブジェクト
  • コラム ECMAScript第5版のstrict mode

Part3 クライアントサイドJavaScript

8章 クライアントサイドJavaScriptとHTML

  • 8-1 クライアントサイドJavaScriptの重要性
    • 8-1-1 Webアプリケーションの発達
    • 8-1-2 JavaScriptの高速化
    • 8-1-3 JavaScriptの役割
  • 8-2 HTMLとJavaScript
    • 8-2-1 Webページを表示するときの処理の流れ
    • 8-2-2 JavaScriptの記述方法と実行タイミング
    • 8-2-3 実行タイミングまとめ
  • 8-3 実行環境と開発環境
    • 8-3-1 実行環境
    • 8-3-2 開発環境
  • 8-4 デバッグ
    • 8-4-1 alert
    • 8-4-2 console
    • 8-4-3 onerror
    • 8-4-4 Firebug, Web Inspector (Developer Tools), Opera Dragonfly
  • 8-5 クロスブラウザ対応
    • 8-5-1 対応すべきブラウザ
    • 8-5-2 実装方法
  • 8-6 Windowオブジェクト
    • 8-6-1 Navigatorオブジェクト
    • 8-6-2 Locationオブジェクト
    • 8-6-3 Historyオブジェクト
    • 8-6-4 Screenオブジェクト
    • 8-6-5 Windowオブジェクトへの参照
    • 8-6-6 Documentオブジェクト

9章 DOM

  • 9-1 DOMとは
    • 9-1-1 DOM Level 1
    • 9-1-2 DOM Level 2
    • 9-1-3 DOM Level 3
  • コラム DOM Level 0
    • 9-1-4 DOMの記述
  • 9-2 DOMの基礎
    • 9-2-1 タグ、要素、ノード
    • 9-2-2 DOM操作
    • 9-2-3 Documentオブジェクト
  • 9-3 ノードの選択
    • 9-3-1 IDによる検索
    • 9-3-2 タグ名による検索
    • 9-3-3 名前による検索
    • 9-3-4 クラス名による検索
    • 9-3-5 親、子、兄弟
    • 9-3-6 XPath
    • 9-3-7 Selectors API
  • 9-4 ノードの作成・追加
  • 9-5 ノードの内容変更
  • 9-6 ノードの削除
  • 9-7 innerHTML/textContent
    • 9-7-1 innerHTML
    • 9-7-2 textContent
  • 9-8 DOM操作のパフォーマンス

10章 イベント

  • 10-1 イベント駆動型プログラミング
  • 10-2 イベントハンドラ/イベントリスナの設定
    • 10-2-1 HTML要素の属性に指定する
    • 10-2-2 DOM要素のプロパティに指定する
    • 10-2-3 EventTarget.addEventListener()を利用する
    • 10-2-4 イベントハンドラ/イベントリスナ内でのthis
  • 10-3 イベント発火
  • 10-4 イベントの伝播
    • 10-4-1 キャプチャリングフェーズ
    • 10-4-2 ターゲットフェーズ
    • 10-4-3 バブリングフェーズ
    • 10-4-4 キャンセル
  • 10-5 イベントが持つ要素
  • 10-6 標準イベント
    • 10-6-1 DOM Level 2で定義されているイベント
    • 10-6-2 DOM Level 3で定義されているイベント
  • 10-7 独自イベント

11章 実践 クライアントサイドJavaScript

  • 11-1 スタイル
    • 11-1-1 スタイル変更方法
    • 11-1-2 位置の指定
    • 11-1-3 位置
    • 11-1-4 アニメーション
  • 11-2 Ajax
    • 11-2-1 非同期処理の利点
    • 11-2-2 XMLHttpRequest
    • 11-2-3 基本的な処理の流れ
    • 11-2-4 同期通信
    • 11-2-5 タイムアウト
    • 11-2-6 レスポンス
    • 11-2-7 クロスオリジン制限
    • 11-2-8 クロスオリジン通信
    • 11-2-9 JSONP
    • 11-2-10 iframeハック
    • 11-2-11 window.postMessage
    • 11-2-12 XMLHttpRequest Level 2
    • 11-2-13 クロスオリジン通信のセキュリティ問題
  • 11-3 フォーム
    • 11-3-1 フォーム要素
    • 11-3-2 フォームコントロール要素
    • 11-3-3 内容の検証
    • 11-3-4 検証に利用できるイベント
    • 11-3-5 フォームを使ってページ遷移を発生させない方法

12章 ライブラリ

  • 12-1 ライブラリを使うべき理由
  • 12-2 jQueryの特徴
  • 12-3 jQueryの基本
    • 12-3-1 記述例
    • 12-3-2 メソッドチェーン
  • コラム メソッドチェーンのデメリット
  • 12-4 $関数
    • 12-4-1 セレクタにマッチする要素を抽出する
    • 12-4-2 新しくDOM要素を作成する
    • 12-4-3 既存のDOM要素をjQueryオブジェクトに変換する
    • 12-4-4 DOM構築後のイベントリスナを設定する
  • 12-5 jQueryによるDOM操作
    • 12-5-1 要素の選択
    • 12-5-2 要素の作成・追加・置換・削除
  • 12-6 jQueryによるイベント処理
    • 12-6-1 イベントリスナの登録・削除
    • 12-6-2 イベント専用のイベントリスナ登録メソッド
    • 12-6-3 ready()メソッド
  • 12-7 jQueryによるスタイル操作
    • 12-7-1 基本的なスタイル操作
    • 12-7-2 アニメーション
  • 12-8 jQueryによるAjax
    • 12-8-1 ajax()関数
    • 12-8-2 ajax()のラッパー関数
    • 12-8-3 グローバルイベント
  • 12-9 Deferred
    • 12-9-1 Defferdの基本
    • 12-9-2 状態遷移
    • 12-9-3 後続関数
    • 12-9-4 並列処理
  • 12-10 jQueryプラグイン
    • 12-10-1 jQueryプラグインの利用
    • 12-10-2 jQueryプラグインの作成
  • 12-11 他のライブラリとの共存
    • 12-11-1 $オブジェクトの衝突
    • 12-11-2 $オブジェクトの衝突回避
  • 12-12 ライブラリの利用方法

Part4 HTML5

13章 HTML5概要

  • 13-1 HTML5の歴史
    • 13-1-1 HTML5の登場の経緯
  • 13-2 HTML5の現状
    • 13-2-1 ブラウザの対応状況
    • 13-2-2 Webアプリケーションとネイティブアプリケーション
  • 13-3 HTML5の概要
  • コラム ブラウザベンダーのHTML5情報ポータル

14章 Webアプリケーション

  • 14-1 History API
    • 14-1-1 History APIとは
    • 14-1-2 ハッシュフラグメント
    • 14-1-3 インターフェース
  • 14-2 ApplicationCache
    • 14-2-1 キャッシュ管理について
    • 14-2-2 キャッシュマニフェスト
    • 14-2-3 ApplicationCache API
    • 14-2-4 オンラインとオフライン

15章 デスクトップ連携

  • 15-1 Drag Drop API
    • 15-1-1 Drag Drop APIとは
    • 15-1-2 インターフェース
    • 15-1-3 基本的なドラッグ&ドロップ
    • 15-1-4 表示のカスタマイズ
    • 15-1-5 ファイルのDrag-In/Drag-Out
  • コラム DataTransferItemList
  • 15-2 File API
    • 15-2-1 File APIとは
    • 15-2-2 Fileオブジェクト
  • コラム <input type="file">のvalueについて
    • 15-2-3 FileReader
    • 15-2-4 data URL
    • 15-2-5 FileReaderSync

16章 ストレージ

  • 16-1 Web Storage
    • 16-1-1 Web Storageとは
  • コラム オリジンとは
    • 16-1-2 基本操作
    • 16-1-3 storageイベント
    • 16-1-4 Cookieについて
    • 16-1-5 ネームスペースの管理
    • 16-1-6 バージョンの管理
    • 16-1-7 localStorageのエミュレート
  • 16-2 Indexed Database
    • 16-2-1 Indexed Databaseとは
  • コラム Web SQL Databaseについて
    • 16-2-2 インフラストラクチャ
    • 16-2-3 データベースに接続
    • 16-2-4 オブジェクトストアの作成
    • 16-2-5 データの追加・削除・参照
    • 16-2-6 インデックスの作成
    • 16-2-7 データの検索と更新
    • 16-2-8 データのソート
    • 16-2-9 トランザクション
    • 16-2-10 同期API

17章 WebSocket

  • 17-1 WebSocket概要
    • 17-1-1 WebSocketとは
    • 17-1-2 既存の通信技術
    • 17-1-3 WebSocketの仕様
    • 17-1-4 WebSocketの動作
  • 17-2 基本操作
    • 17-2-1 コネクションの確立
    • 17-2-2 メッセージの送受信
    • 17-2-3 コネクションの切断
    • 17-2-4 コネクションの状態確認
    • 17-2-5 バイナリデータの送受信
    • 17-2-6 WebSocketインスタンスのプロパティ一覧
  • 17-3 WebSocket実践
    • 17-3-1 Node.jsのインストール
    • 17-3-2 サーバサイドの実装
    • 17-3-3 クライアントサイドの実装
    • 17-3-4 クライアントサイドの実装2

18章 Web Workers

  • 18-1 Web Workers概要
    • 18-1-1 Web Workersとは
    • 18-1-2 Web Workersの動作
  • 18-2 基本操作
    • 18-2-1 ワーカの生成
    • 18-2-2 メインスレッド側のメッセージ送受信
    • 18-2-3 ワーカ側のメッセージ送受信
    • 18-2-4 ワーカの削除
    • 18-2-5 外部ファイルの読み込み
  • 18-3 Web Workers実践
    • 18-3-1 ワーカの利用
    • 18-3-2 ワーカの処理を中断する
  • 18-4 共有ワーカ
    • 18-4-1 共有ワーカとは
    • 18-4-2 共有ワーカの生成
    • 18-4-3 共有ワーカのメッセージ送受信
    • 18-4-4 共有ワーカの削除
    • 18-4-5 共有ワーカの応用例

Part5 Web API

19章 Web APIの基礎

  • 19-1 Web APIとWebサービス
    • 19-1-1 Web APIが想定するシステム
  • 19-2 Web APIの歴史
    • 19-2-1 スクレイピング
    • 19-2-2 セマンティックWeb
    • 19-2-3 XML
    • 19-2-4 Atom
    • 19-2-5 JSON
    • 19-2-6 SOAP
    • 19-2-7 REST
    • 19-2-8 簡単なまとめ
  • 19-3 Web APIの構成
    • 19-3-1 Web APIの形態
    • 19-3-2 Web APIの利用
    • 19-3-3 RESTful API
    • 19-3-4 APIキー
  • 19-4 ユーザ認証と認可
    • 19-4-1 Webアプリのセッション管理
    • 19-4-2 セッション管理とユーザ認証
    • 19-4-3 Web APIと権限
    • 19-4-4 認証と認可
    • 19-4-5 OAuth

20章 Web APIの実例

  • 20-1 Web APIのカテゴリ
  • 20-2 Google Translate API
    • 20-2-1 準備
    • 20-2-2 動作概要
    • 20-2-3 Web APIの利用コード
    • 20-2-4 ウィジェット(Google Translate Element)
  • 20-3 Google Maps API
    • 20-3-1 Google Static Maps API
    • 20-3-2 マイマップ
    • 20-3-3 Google Maps APIの概要
    • 20-3-4 Google Maps APIの簡単な例
    • 20-3-5 イベント
    • 20-3-6 Geolocation APIとGeocoding API
  • 20-4 Yahoo! Flickr
    • 20-4-1 Flickr Web APIの利用
    • 20-4-2 FlickrのWeb APIの利用例
  • 20-5 Twitter
    • 20-5-1 検索API
    • 20-5-2 REST API
    • 20-5-3 Twitter JS API @anywhere
    • 20-5-4 Twitter Widget
  • 20-6 Facebook
    • 20-6-1 Facebookアプリの変遷
    • 20-6-2 FacebookのJavaScript API
    • 20-6-3 Facebookのプラグイン
  • 20-7 OpenSocial
    • 20-7-1 OpenSocialの基本アーキテクチャ
  • コラム OpenSocialスペックの読み方とActivity

Part6 サーバサイドJavaScript

21章 サーバサイドJavaScriptとNode.js

  • 21-1 サーバサイドJavaScriptの動向
  • 21-2 CommonJS
    • 21-2-1 CommonJSとは
  • コラム ホストオブジェクトに依存しないライブラリ
    • 21-2-2 CommonJSの動向
    • 21-2-3 モジュール機能
  • 21-3 Node.js
    • 21-3-1 Node.jsとは
    • 21-3-2 nodeコマンド
    • 21-3-3 npmとパッケージ
    • 21-3-4 consoleモジュール
    • 21-3-5 utilモジュール
    • 21-3-6 processオブジェクト
    • 21-3-7 グローバルオブジェクト
    • 21-3-8 Node.jsプログラミングの概要
    • 21-3-9 イベントAPI
    • 21-3-10 バッファ
    • 21-3-11 ストリーム

22章 実践 Node.jsプログラミング

  • 22-1 HTTPサーバ処理
    • 22-1-1 HTTPサーバ処理の基本
    • 22-1-2 リクエスト処理
    • 22-1-3 レスポンス処理
    • 22-1-4 POSTリクエスト処理
  • 22-2 HTTPクライアント処理
  • 22-3 HTTPS処理
    • 22-3-1 opensslコマンドを使う自己証明書の発行方法
    • 22-3-2 HTTPSサーバ
  • 22-4 Socket.IOとWebSocket
  • 22-5 低レイヤのネットワークプログラミング
    • 22-5-1 低レイヤネットワーク処理
    • 22-5-2 ソケットとは
    • 22-5-3 ソケットプログラミングの基本構造
    • 22-5-4 ソケットプログラミングの具体例
  • 22-6 ファイル処理
    • 22-6-1 本節のサンプルコード
    • 22-6-2 ファイルの非同期処理
    • 22-6-3 ファイルの同期処理
    • 22-6-4 ファイル操作系の関数
    • 22-6-5 ファイル読み込み
    • 22-6-6 ファイル書き込み
    • 22-6-7 ディレクトリ操作
    • 22-6-8 ファイルの変更監視
    • 22-6-9 ファイルパス
  • 22-7 タイマー
  • コラム Node.jsのデバッグ
  • 22-8 Express
    • 22-8-1 URLルーティング
    • 22-8-2 リクエスト処理
    • 22-8-3 レスポンス処理
    • 22-8-4 scaffold作成機能
    • 22-8-5 MVCアーキテクチャ
    • 22-8-6 テンプレート言語Jade
    • 22-8-7 MongoDB(データベース)
    • 22-8-8 Mongooseの実例
    • 22-8-9 ExpressとMongooseを使うWebアプリ

サポート

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2012年10月19日更新)

P.232

consolo.log('foo bar')というような記述をJavaScript内に含めておくと、
console.log('foo bar')というような記述をJavaScript内に含めておくと、

P.232

alertを利用する場合と本質的には同じですが、consoloを利用する場合は
alertを利用する場合と本質的には同じですが、consoleを利用する場合は

P.277

非推奨である「MutationEvent MutationNameEvent」を除くイベントを表10.8~10.14に示します。
非推奨である「MutationEvent」「MutationNameEvent」を除くイベントを表10.8~10.14に示します。

P.303

異なるドメインと通信を行うということはセキュリティリスクを追うことになります。
異なるドメインとの通信はセキュリティリスクであることを覚えておいてください。

P.320

one()の使い方はbine()と同じです。
one()の使い方はbind()と同じです。

P.325

12-8-2 AJAX()のラッパー関数
12-8-2 ajax()のラッパー関数

P.325

AJAX()関数にはいろいろなオプションが指定できますが、
ajax()関数にはいろいろなオプションが指定できますが、

P.334

たとえばjQueryとPrototypeの両方を利用する場合、
たとえばjQueryとPrototype.jsの両方を利用する場合、

P.348

 URLはページ状態の書き換えに合わせて更新されるべきですが、ページ履歴を細かく保存し過ぎると、戻りたい状態へ辿り着くまでに戻るボタンを何回もクリックする羽目になり、かえってユーザビリティを悪化させる場合があります。
 URLはページ状態の書き換えに合わせて更新されるべきです。しかしページ履歴を細かく保存し過ぎると、戻りたい状態へ辿り着くまでに戻るボタンを何回もクリックする羽目になり、逆にユーザビリティの低下を招く恐れがあります。

商品一覧