初めてのJavaScript(第3版) ES2015以降の最新ウェブ開発

JavaScriptの最新規格ES6(ECMAScript 6)をバランスよく解説!

このような方におすすめ

・ウェブ開発者・他言語経験者
  • 著者Ethan Brown/武舎 広幸、武舎 るみ 訳
  • 定価3,520 (本体3,200 円+税)
  • B5変 432頁 2017/01発行
  • ISBN978-4-87311-783-6
  • 定価
  • ポイント0
  • 数量

※本体価格は変更される場合があります。
※通常2〜3営業日以内で発送いたします。
※取寄が可能な場合もございますのでお問合せください。

  • 概要
  • 主要目次
  • 詳細目次

ES6(ECMAScript 6)の入門書。シンプルな例題を多用しながらES6によるウェブ開発をわかりやすく丁寧に解説します。従来バージョンを使用中のJavaScriptプログラマーにも、これからJavaScriptを習得したい入門者にも有用な情報が満載です。本書を読めば、letやconstによる宣言とスコープ、関数の基本と高度な使い方、オブジェクトとオブジェクト指向プログラミング、イテレータやジェネレータやプロキシといったES6の新機能、非同期プログラミング、クライアントサイドのDOMやjQuery、サーバーサイドのNode.jsなど、JavaScriptの最新バージョンを使った開発に関する総括的な知識をバランスよく得られます。

https://www.ohmsha.co.jp/book/9784873117836/

    
訳者まえがき
まえがき

1章 JavaScriptの歴史と開発環境
1.1 JavaScriptの簡単な歴史
1.2 ES2015
1.3 開発環境とツール
1.4 ES2015での開発
1.5 ES2015の機能
1.6 Node.jsのインストールと実行
1.6.1 Node.jsによるJavaScriptプログラムの実行
1.6.2 nodeコマンド

2章 初めてのJavaScriptアプリ
2.1 準備
2.2 ツール
2.3 コメント
2.4 3つのファイルに分解
2.5 jQuery
2.6 簡単な図形の表示
2.7 繰り返し
2.8 クリックの検知
2.9 Hello,World

3章 変数、定数、リテラル、データ型
3.1 変数と定数
3.2 変数か定数か
3.3 識別子
3.4 リテラル
3.5 プリミティブ型とオブジェクト
3.6 数値
3.7 文字列
3.7.1 エスケープ
3.7.2 特殊文字
3.7.3 テンプレートリテラル
3.7.4 複数行にわたる文字列
3.7.5 文字列としての数値
3.8 論理値
3.9 シンボル
3.10 nullとundefined
3.11 オブジェクト
3.12 数値、文字列、論理値に対応するオブジェクト
3.13 配列
3.14 配列やオブジェクトの最終要素のあとの「,」
3.15 日時
3.16 正規表現
3.17 マップ(Map)とセット(Set)
3.18 データの型変換
3.18.1 数値への変換
3.18.2 文字列への変換
3.18.3 論理値への変換
3.19 まとめ

4章 制御フロー
4.1 制御フロー入門
4.1.1 whileループ
4.1.2 ブロック文
4.1.3 ホワイトスペース
4.1.4 ヘルパー関数
4.1.5 if...else文
4.1.6 do...whileループ
4.1.7 forループ
4.1.8 if文
4.1.9 すべてを統合
4.2 JavaScriptの制御フロー文
4.2.1 制御フローの例外
4.2.2 if...else文のつなぎ方
4.2.3 構文の詳細
4.2.4 while文
4.2.5 if...else文
4.2.6 do...while文
4.2.7 for文
4.2.8 その他のforループパターン
4.2.9 switch文
4.2.10 for...inループ
4.2.11 for...ofループ
4.3 便利な制御フローパターン
4.3.1 条件の入れ子を減らすためにcontinueを使う方法
4.3.2 不要な計算を避けるためにbreakやreturnを使う方法
4.3.3 ループ終了後のループ変数の値を使う方法
4.3.4 リストを変更するときにチェックを降順に行う方法
4.4 まとめ

5章 式と演算子
5.1 演算子
5.2 算術演算子
5.3 演算子の優先順位
5.4 比較演算子
5.4.1 厳密等価演算子と等価演算子
5.4.2 関係演算子
5.4.3 数値を比較する際の留意点
5.5 文字列連結
5.6 論理演算子
5.6.1 真と見なされる値と偽と見なされる値
5.6.2 AND、OR、NOT
5.6.3 短絡評価
5.6.4 論理値ではない被演算子を用いた論理演算
5.7 条件演算子
5.8 カンマ演算子
5.9 グループ化演算子
5.10 ビット演算子
5.11 typeof演算子
5.12 void演算子
5.13 代入演算子
5.14 分割代入(デストラクチャリング)
5.15 オブジェクト演算子と配列演算子
5.16 テンプレートリテラル内の式
5.17 式と制御フローのパターン
5.17.1 if...else文を条件演算子を使った構文に変換
5.17.2 if文の短絡論理ORへの変換
5.18 まとめ

6章 関数
6.1 戻り値
6.2 呼び出しと参照
6.3 関数の引数
6.3.1 引数と関数
6.3.2 引数の分割代入
6.3.3 デフォルト引数
6.4 オブジェクトのメソッド
6.4.1 メソッドの省略記法
6.5 this
6.6 関数式と無名関数
6.7 アロー関数
6.8 call、apply、bind
6.9 まとめ

7章 スコープ
7.1 スコープと存在
7.2 静的スコープと動的スコープ
7.3 グローバルスコープ
7.4 ブロックスコープ
7.5 変数の隠蔽
7.6 関数、クロージャ、静的スコープ
7.7 IIFE.即座に実行される関数式
7.8 関数のスコープと巻き上げ
7.9 関数の巻き上げ
7.10 TDZ(TemporalDeadZone)
7.11 strictモード
7.12 まとめ

8章 配列
8.1 配列の基本
8.2 配列要素の操作
8.2.1 先頭あるいは最後の要素に対する操作
8.2.2 複数要素の追加
8.2.3 部分配列
8.2.4 途中の要素の削除や途中への要素の追加
8.2.5 配列内の要素の削除や置換
8.2.6 配列を特定の値で埋める
8.2.7 逆転とソート
8.3 検索
8.4 mapとfilter
8.5 reduce
8.6 配列関連のメソッドと削除された要素、定義されていない要素
8.7 join
8.8 まとめ

9章 オブジェクトとオブジェクト指向プログラミング
9.1 プロパティの列挙
9.1.1 for...in
9.1.2 Object.keys
9.2 オブジェクト指向プログラミング
9.2.1 クラスとインスタンス生成
9.2.2 アクセッサプロパティ
9.2.3 クラスは関数
9.2.4 プロトタイプ
9.2.5 静的メソッド
9.2.6 継承
9.2.7 ポリモーフィズム
9.2.8 プロパティの列挙(補足)
9.2.9 文字列による表現
9.3 多重継承、ミックスイン、インタフェース
9.4 まとめ

10章 マップとセット
10.1 マップ(Map)
10.2 ウィークマップ(WeakMap)
10.3 セット(Set)
10.4 ウィークセット(WeakSet)
10.5 オブジェクトかマップか

11章 例外とエラー処理
11.1 Errorオブジェクト
11.2 例外処理(try...catch)
11.3 例外のスロー
11.4 例外処理とコールスタック
11.5 try...catch...finally
11.6 例外処理は例外に限る

12章 イテレータとジェネレータ
12.1 イテレータ
12.1.1 配列とイテレータ
12.1.2 イテレータのプロトコル
12.1.3 無限の値を供給するイテレータ
12.2 ジェネレータ
12.2.1 yield式と双方向コミュニケーション
12.2.2 ジェネレータとreturn
12.3 まとめ

13章 関数のさまざまな利用方法
13.1 サブルーチンとしての関数
13.2 値を返すサブルーチンとしての関数
13.3 純粋関数としての関数
13.4 なぜ純粋関数か
13.4.1 関数はオブジェクト
13.5 IIFEと非同期のコード
13.6 関数と変数
13.6.1 関数を配列に記憶
13.6.2 関数に関数を渡す
13.6.3 関数から関数を返す
13.7 再帰
13.8 まとめ

14章 非同期プログラミング
14.1 非同期処理のアナロジー
14.2 コールバック
14.2.1 setIntervalとclearInterval
14.2.2 スコープと非同期の実行
14.2.3 エラーファースト・コールバック
14.2.4 コールバック地獄
14.3 プロミス(Promise)
14.3.1 プロミスの生成
14.3.2 プロミスの利用
14.3.3 プロミスの基本パターン
14.3.4 プロミスのチェイニング
14.3.5 Promise.allとPromise.race
14.3.6 未確定の(unsettled)プロミスを防止する
14.4 ジェネレータ
14.4.1 ジェネレータランナー
14.4.2 ジェネレータランナーの例外処理
14.5 まとめ

15章 日時
15.1 タイムゾーン、タイムスタンプ、UNIXエポック
15.2 Dateオブジェクトの生成
15.3 Moment.js
15.4 JavaScriptによる日時関連の処理
15.5 日時の生成
15.5.1 サーバーにおける日時の生成
15.5.2 ブラウザにおける日時の生成
15.6 日時の受け渡し
15.7 日時関連の文字列の表示
15.8 月、日、曜日、時、分の取得
15.9 日時の比較
15.10 日時の演算
15.11 相対的な日時の利用
15.12 まとめ

16章 Math
16.1 数値のフォーマット指定
16.1.1 固定小数点数
16.1.2 指数表現
16.1.3 精度の指定
16.1.4 基数の指定
16.1.5 より細かなフォーマット指定
16.2 定数
16.3 代数関連の関数
16.3.1 累乗
16.3.2 対数関連の関数
16.3.3 その他の関数
16.3.4 擬似乱数発生
16.4 三角関数
16.5 双曲線関数

17章 正規表現
17.1 単純なマッチングと置換
17.2 正規表現の生成
17.3 正規表現を用いた検索
17.4 正規表現を用いた置換
17.5 入力文字列の「消費」
17.6 ORを表す正規表現
17.7 正規表現によるマッチングの限界
17.8 文字集合
17.9 文字集合の略記法
17.10 繰り返し
17.11 メタ文字「.」とエスケープ
17.11.1 ワイルドカード
17.12 グループ化
17.13 最長マッチ、最短マッチ
17.14 後方参照
17.15 グループの置換
17.16 関数を用いた置換
17.17 行頭や行末とのマッチング
17.18 英単語の境界のマッチング
17.19 先読み
17.20 正規表現の動的な生成
17.21 まとめ

18章 ウェブブラウザのJavaScript
18.1 ES5かES2015か
18.2 ドキュメントオブジェクトモデル(DOM)
18.3 DOMのgetメソッド
18.4 DOM要素に関するクエリー
18.5 DOM要素の操作
18.6 DOM要素の生成
18.7 要素のスタイル
18.8 data属性
18.9 イベント
18.9.1 イベントのキャプチャリングとバブリング
18.9.2 イベントの種類
18.10 Ajax
18.11 まとめ

19章 jQuery
19.1 jQueryと「$」
19.2 jQueryの利用
19.3 DOMのロードを待つ
19.4 jQueryにラップされたDOM要素
19.5 要素の操作
19.6 jQueryオブジェクトのアンラップ
19.7 Ajax
19.8 まとめ

20章 Node.js
20.1 Nodeの基本
20.2 モジュール
20.3 コアモジュール、ファイルモジュール、npmモジュール
20.4 関数モジュールを使ったモジュールのカスタマイズ
20.5 ファイルシステムへのアクセス
20.6 プロセス
20.7 OS
20.8 子プロセス
20.9 ストリーム
20.10 ウェブサーバー
20.11 まとめ

21章 オブジェクトのプロパティに関する詳細
21.1 ゲッターとセッター
21.2 プロパティのディスクリプタ
21.3 オブジェクトの保護
21.4 プロキシ
21.5 まとめ

22章 JavaScript関連の情報源
22.1 オンラインのドキュメント
22.2 ニュースレター
22.3 ブログおよびチュートリアル
22.4 オープンソースプロジェクトへの貢献
22.5 まとめ

付録A 予約語

付録B 演算子の優先順位

付録C 開発ツールのインストール
C.1 ターミナル
C.2 Gitのインストール
C.2.1 macOS
C.2.2 Windows
C.2.3 Linux
C.3 プロジェクトルート
C.4 Gitを使ったバージョン管理
C.5 npmによるパッケージ管理
C.6 ビルドツールのGulp
C.7 プロジェクトの構成
C.8 トランスパイラー
C.9 GulpでBabelを実行
C.10 lint

付録D ES2016とES2017の動向
D.1 ECMAScript2016
D.1.1 累乗を表す演算子「**」
D.1.2 Array.prototype.includes
D.2 ECMAScript2017
D.2.1 関数構文の末尾カンマの許容
D.2.2 文字列用のメソッドpadStartとpadEnd
D.2.3 Object.entriesおよびObject.values
D.2.4 Object.getOwnPropertyDescriptors
D.2.5 async/await

索引