目次
章の一覧
まえがきなど v
1章 JavaScriptの歴史と開発環境 1
2章 初めてのJavaScriptアプリ 7
3章 変数、定数、リテラル、データ型 23
4章 制御フロー 53
5章 式と演算子 83
6章 関数 105
7章 スコープ 125
8章 配列 141
9章 オブジェクトとオブジェクト指向プログラミング 161
10章 マップとセット183
11章 例外とエラー処理 191
12章 イテレータとジェネレータ 197
13章 関数のさまざまな利用方法 209
14章 非同期プログラミング 227
15章 日時 255
16章 Math 269
17章 正規表現 279
18章 ウェブブラウザのJavaScript 305
19章 jQuery 327
20章 Node.js 335
21章 オブジェクトのプロパティに関する詳細 357
22章 JavaScript関連の情報源 371
付録A 予約語 375
付録B 演算子の優先順位 377
付録C 開発ツールのインストール 381
付録D ES2016とES2017の動向 399
索引 411
著者・紹介 414
↑ 戻る
目次(詳細)
献辞 v
訳者まえがき vii
原著者まえがき ix
この本の対象読者 x
この本の非対象読者 x
意見と質問 xi
表記上のルール xii
謝辞 xiii
1章 JavaScript の歴史と開発環境 1
1.1 JavaScript の簡単な歴史 1
1.2 ES2015 2
1.3 開発環境とツール 2
1.4 ES2015 での開発 3
1.5 ES2015 の機能 4
1.6 Node.js のインストールと実行 4
1.6.1 Node.js によるJavaScript プログラムの実行 4
1.6.2 node コマンド 5
2章 初めてのJavaScript アプリ 7
2.1 準備 8
2.2 ツール 8
2.3 コメントに関するコメント 8
2.4 3 つのファイルに分解 11
2.5 jQuery 13
2.6 簡単な図形の表示 14
2.7 繰り返し 16
2.8 クリックの検知 18
2.9 Hello, World 20
3章 変数、定数、リテラル、データ型 23
3.1 変数と定数 23
3.2 変数か定数か 25
3.3 識別子 25
3.4 リテラル 27
3.5 プリミティブ型とオブジェクト 28
3.6 数値 29
3.7 文字列 31
3.7.1 エスケープ 31
3.7.2 特殊文字 33
3.7.3 テンプレートリテラル 33
3.7.4 複数行に渡る文字列 34
3.7.5 文字列としての数値 36
3.8 論理値 37
3.9 シンボル 37
3.10 null とundefined 38
3.11 オブジェクト 39
3.12 数値、文字列、論理値に対応するオブジェクト 44
3.13 配列 44
3.14 配列やオブジェクトの最終要素のあとの「,」 47
3.15 日時 47
3.16 正規表現 48
3.17 マップ(Map)とセット(Set) 48
3.18 データの型変換 49
3.18.1 数値への変換 49
3.18.2 文字列への変換 50
3.18.3 論理値への変換 51
3.19 まとめ 51
4章 制御フロー 53
4.1 制御フロー入門 54
4.1.1 while ループ 57
4.1.2 ブロック文 58
4.1.3 ホワイトスペース 59
4.1.4 ヘルパー関数 60
4.1.5 if...else 文 61
4.1.6 do...while ループ 63
4.1.7 for ループ 64
4.1.8 if 文 66
4.1.9 すべてを統合 67
4.2 JavaScript の制御フロー文 69
4.2.1 制御フローの例外 69
4.2.2 if...else 文のつなぎ方 70
4.2.3 構文の詳細 71
4.2.4 while 文 71
4.2.5 if...else 文 71
4.2.6 do...while 文 72
4.2.7 for 文 72
4.2.8 その他のfor ループパターン 72
4.2.9 switch 文 74
4.2.10 for...in ループ 77
4.2.11 for...of ループ 78
4.3 便利な制御フローパターン 78
4.3.1 条件の入れ子を減らすためにcontinue を使う方法 78
4.3.2 不要な計算を避けるためにbreak やreturn を使う方法 79
4.3.3 ループ終了後のループ変数の値を使う方法 80
4.3.4 リストを変更するときにチェックを降順に行う方法 80
4.4 まとめ 81
5章 式と演算子 83
5.1 演算子 84
5.2 算術演算子 84
5.3 演算子の優先順位 86
5.4 比較演算子 87
5.4.1 厳密等価演算子と等価演算子 87
5.4.2 関係演算子 89
5.4.3 数値を比較する際の留意点 89
5.5 文字列連結 91
5.6 論理演算子 91
5.6.1 真と見なされる値と偽と見なされる値 92
5.6.2 AND、OR、NOT 93
5.6.3 短絡評価 94
5.6.4 論理値ではない被演算子を用いた論理演算 94
5.7 条件演算子 95
5.8 カンマ演算子 96
5.9 グループ化演算子 96
5.10 ビット演算子 96
5.11 typeof 演算子 98
5.12 void 演算子 99
5.13 代入演算子 99
5.14 分割代入(デストラクチャリング) 100
5.15 オブジェクト演算子と配列演算子 102
5.16 テンプレートリテラル内の式 103
5.17 式と制御フローのパターン 103
5.17.1 if...else 文を条件演算子を使った構文に変換 103
5.17.2 if 文の短絡論理OR への変換 104
5.18 まとめ 104
6章 関数 105
6.1 戻り値 105
6.2 呼び出しと参照 106
6.3 関数の引数 107
6.3.1 引数と関数 110
6.3.2 引数の分割代入 111
6.3.3 デフォルト引数 112
6.4 オブジェクトのメソッド 113
6.4.1 メソッドの省略記法 113
6.5 this 114
6.6 関数式と無名関数 116
6.7 アロー関数 118
6.8 call、apply、およびbind 119
6.9 まとめ 123
7章 スコープ 125
7.1 スコープと存在 126
7.2 静的スコープと動的スコープ 126
7.3 グローバルスコープ 127
7.4 ブロックスコープ 129
7.5 変数の隠蔽 130
7.6 関数、クロージャ、静的スコープ 132
7.7 IIFE――即座に実行される関数式 133
7.8 関数のスコープと巻き上げ 135
7.9 関数の巻き上げ 137
7.10 TDZ(Temporal Dead Zone) 138
7.11 strict モード 139
7.12 まとめ 140
8章 配列 141
8.1 配列の基本 141
8.2 配列要素の操作 142
8.2.1 先頭あるいは最後の要素に対する操作 143
8.2.2 複数要素の追加 143
8.2.3 部分配列 144
8.2.4 途中の要素の削除や途中への要素の追加 144
8.2.5 配列内の要素の削除や置換 145
8.2.6 配列を特定の値で埋める 145
8.2.7 逆転とソート 146
8.3 検索 147
8.4 map とfilter 150
8.5 reduce 152
8.6 配列関連のメソッドと削除された要素、定義されていない要素 157
8.7 join 157
8.8 まとめ 158
9章 オブジェクトとオブジェクト指向プログラミング 161
9.1 プロパティの列挙 161
9.1.1 for...in 162
9.1.2 Object.keys 163
9.2 オブジェクト指向プログラミング 164
9.2.1 クラスとインスタンス生成 165
9.2.2 アクセッサプロパティ 167
9.2.3 クラスは関数 170
9.2.4 プロトタイプ 171
9.2.5 静的メソッド 173
9.2.6 継承 174
9.2.7 ポリモーフィズム 176
9.2.8 オブジェクトのプロパティの列挙(改良版) 177
9.2.9 文字列による表現 178
9.3 多重継承、ミックスイン、インタフェース 178
9.4 まとめ 181
10章 マップとセット 183
10.1 マップ(Map) 183
10.2 ウィークマップ(WeakMap) 186
10.3 セット(Set) 187
10.4 ウィークセット(WeakSet) 188
10.5 オブジェクトかマップか 189
↑ 戻る
11章 例外とエラー処理 191
11.1 Error オブジェクト 191
11.2 例外処理(try...catch) 192
11.3 例外のスロー 193
11.4 例外処理とコールスタック 193
11.5 try...catch...finally 195
11.6 例外処理は例外に限る 196
12章 イテレータとジェネレータ 197
12.1 イテレータ 197
12.1.1 イテレータのプロトコル 198
12.1.2 無限の値を供給するイテレータ 203
12.2 ジェネレータ 204
12.2.1 yield 式と双方向コミュニケーション 205
12.2.2 ジェネレータとreturn 207
12.3 まとめ 208
13章 関数のさまざまな利用方法 209
13.1 サブルーチンとしての関数 209
13.2 値を返すサブルーチンとしての関数 211
13.3 純粋関数としての関数 212
13.4 なぜ純粋関数か 215
13.4.1 関数はオブジェクト 216
13.5 IIFE と非同期のコード 216
13.6 関数と変数 220
13.6.1 関数を配列に記憶 222
13.6.2 関数に関数を渡す 223
13.6.3 関数から関数を返す 224
13.7 再帰 224
13.8 まとめ 226
14章 非同期プログラミング 227
14.1 非同期処理のアナロジー 228
14.2 コールバック 228
14.2.1 setInterval とclearInterval 230
14.2.2 スコープと非同期の実行 231
14.2.3 エラーファースト・コールバック 233
14.2.4 コールバック地獄 233
14.3 プロミス(Promise) 235
14.3.1 プロミスの生成 236
14.3.2 プロミスの利用 237
14.3.3 プロミスの基本パターン 241
14.3.4 プロミスのチェイニング 242
14.3.5 Promise.all とPromise.race 245
14.3.6 未確定の(unsettled)プロミスを防止する 247
14.4 ジェネレータ 249
14.4.1 ジェネレータランナー 250
14.4.2 ジェネレータランナーの例外処理 252
14.5 まとめ 253
15章 日時 255
15.1 タイムゾーン、タイムスタンプ、Unix エポック 255
15.2 Date オブジェクトの生成 256
15.3 Moment.js 258
15.4 JavaScript による日時関連の処理 259
15.5 日時の生成 259
15.5.1 サーバにおける日時の生成 259
15.5.2 ブラウザにおける日時の生成 260
15.6 日時の受け渡し 260
15.7 日時関連の文字列の表示 262
15.8 月、日、曜日、時、分の取得 263
15.9 日時の比較 264
15.10 日時の演算 264
15.11 相対的な日時の利用 266
15.12 まとめ 267
16章 Math 269
16.1 数値のフォーマット指定 269
16.1.1 固定小数点 270
16.1.2 指数表現 270
16.1.3 精度の指定 270
16.1.4 基数の指定 271
16.1.5 より細かなフォーマット指定 271
16.2 定数 271
16.3 代数関連の関数 272
16.3.1 累乗 272
16.3.2 対数関連の関数 273
16.3.3 その他の関数 273
16.3.4 擬似乱数発生 274
16.4 三角関数 275
16.5 双曲線関数 276
17章 正規表現 279
17.1 単純なマッチングと置換 279
17.2 正規表現の生成 280
17.3 正規表現を用いた検索 281
17.4 正規表現を用いた置換 282
17.5 入力文字列の「消費」 282
17.6 OR を表す正規表現 285
17.7 正規表現によるマッチングの限界 286
17.8 文字集合 286
17.9 文字集合の略記法 288
17.10 繰り返し 290
17.11 メタ文字「.」とエスケープ 290
17.11.1 ワイルドカード 291
17.12 グループ化 291
17.13 最長マッチ、最短マッチ 293
17.14 後方参照 294
17.15 グループの置換 294
17.16 関数を用いた置換 296
17.17 行頭や行末とのマッチング 299
17.18 英単語の境界のマッチング 300
17.19 先読み 301
17.20 正規表現の動的な生成 302
17.21 まとめ 303
18章 ウェブブラウザのJavaScript 305
18.1 ES5 かES2015 か 305
18.2 ドキュメントオブジェクトモデル(DOM) 305
18.3 DOM のget メソッド 309
18.4 DOM 要素に関するクエリー 310
18.5 DOM 要素の操作 311
18.6 DOM 要素の生成 312
18.7 要素のスタイル 312
18.8 data 属性 314
18.9 イベント 316
18.9.1 イベントのキャプチャリングとバブリング 317
18.9.2 イベントの種類 320
18.10 Ajax 321
18.11 まとめ 325
19章 jQuery 327
19.1 jQuery と「$」 327
19.2 jQuery のインクルード 328
19.3 DOM のロードを待つ 328
19.4 jQuery にラップされたDOM 要素 328
19.5 要素の操作 330
19.6 jQuery オブジェクトのアンラップ 332
19.7 Ajax 333
19.8 まとめ 334
20章 Node.js 335
20.1 Node の基本 335
20.2 モジュール 336
20.3 コアモジュール、ファイルモジュール、npm モジュール 338
20.4 関数モジュールを使ったモジュールのカスタマイズ 341
20.5 ファイルシステムへのアクセス 343
20.6 プロセス 347
20.7 OS 349
20.8 子プロセス 350
20.9 ストリーム 351
20.10 ウェブサーバ 353
20.11 まとめ 355
↑ 戻る
21章 オブジェクトのプロパティに関する詳細 357
21.1 ゲッターとセッター 357
21.2 プロパティのディスクリプタ 359
21.3 オブジェクトの保護 362
21.4 プロキシ 365
21.5 まとめ 369
22章 JavaScript 関連の情報源 371
22.1 オンラインのドキュメント 371
22.2 ニュースレター 372
22.3 ブログおよびチュートリアル 372
22.4 オープンソースプロジェクトへの貢献 373
22.5 まとめ 373
付録A 予約語 375
付録B 演算子の優先順位 377
付録C 開発ツールのインストール 381
C.1 ターミナル 382
C.2 Git のインストール 383
C.2.1 macOS 383
C.2.2 Windows 383
C.2.3 Linux 384
C.3 プロジェクトルート 384
C.4 Git を使ったバージョン管理 384
C.5 npm によるパッケージ管理 387
C.6 ビルドツールのGulp 389
C.7 プロジェクトの構成 391
C.8 トランスコンパイラ 392
C.9 Gulp でBabel を実行 392
C.10 lint 395
付録D ES2016 とES2017 の動向 399
D.1 ECMAScript 2016 399
D.1.1 累乗を表す演算子「**」 399
D.1.2 Array.prototype.includes 399
D.2 ECMAScript 2017 400
D.2.1 関数構文の末尾カンマの許容 400
D.2.2 文字列用のメソッドpadStart とpadEnd 402
D.2.3 Object.entries およびObject.values 403
D.2.4 Object.getOwnPropertyDescriptors 405
D.2.5 async/await 406
索引 411
後付 413
カバーの説明 413
著者紹介 414
訳者紹介 414
↑ 戻る
会社概要
ご連絡
Copyright © 1993-2024 Marlin Arms Corporation
当サイトでは、第三者配信による広告サービスを利用しています。このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報(氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。この処理の詳細やこのような情報が広告配信事業者に使用されないようにする方法については、こちらのページをご覧ください