Top▲
マーリンアームズ サポート   翻訳   コンサル   講座   アプリ   コラム

初めてのJavaScript 第3版 —— ES2015以降の最新ウェブ開発    Ethan Brown著    武舎広幸+武舎るみ訳

目次

章の一覧

 まえがきなど 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

↑ 戻る