試験公開中

このエントリーをはてなブックマークに追加

JavaScriptモダンプログラミング完全ガイド 堅牢なコードを効率的に開発できる!

インプレス

3,000円+税

本書は、JavaScript標準であるECMAScri pt 6以降に対応した、完全かつ簡潔なガイドブックです。古いバージョンについては解説をスキップし、現在のはるかに強力なモダンJavaScriptの中核技術からスタートできます。

【注意】本書のEPUB版は固定レイアウト型になっております。文字の大きさの変更や検索、引用などはお使いいただけません。画面の大きい端末でご利用ください。

関連サイト

本書の関連ページが用意されています。

内容紹介

舞台裏も他言語との違いも分かる! 関数型/オブジェクト指向/非同期の活用、モジュールによる拡張、落とし穴の回避などを解説[基本事項を中心に、中級~超上級レベルも学べます]
本書は、JavaScript標準であるECMAScript 6以降に対応した、完全かつ簡潔なガイドブックです。古いバージョンについては解説をスキップし、現在のはるかに強力なモダンJavaScriptの中核技術からスタートできます。近年、JavaScriptプログラマーの達人たちは、エラーが発生しやすい手法を回避するために、関数型/オブジェクト指向/非同期プログラミングを積極的に採用しています。そうした最新のテクニックやヒントを本書で習得し、開発生産性の飛躍的な向上をぜひ目指してください。Java、C#、C/C++など他言語の経験者、初中級者がモダンJavaScriptを本格的に学べる一冊です。◎本書は『Modern JavaScript for the Impatient』の翻訳書です。

書誌情報

  • 著者: Cay S. Horstmann(著), 吉川 邦夫(訳)
  • 発行日: (紙書籍版発行日: 2020-12-21)
  • 最終更新日: 2020-12-21
  • バージョン: 1.0.0
  • ページ数: 384ページ(PDF版換算)
  • 対応フォーマット: PDF, EPUB
  • 出版社: インプレス

対象読者

JavaやCなど他言語ユーザーでこれからJavaScript を学ぶ方, JavaScript の初中級者の方

著者について

Cay S. Horstmann

米国サンノゼ州立大学のコンピュータサイエンス名誉教授。コンピュータ業界のカンファレンスで頻繁に講演を行っている。Javaテクノロジー/コミュニティのリーダーとして選考されたJavaチャンピオンである。著書に『Core Java, Volumes I & II, Eleventh Edition』(Pearson, 2018)、『Scala for the Impatient, Second Edition』(Addison-Wesley, 2016)、『Core Java SE 9 for the Impatient』(Addison-Wesley, 2017)などがある。

吉川 邦夫

1957年生まれ。ICU(国際基督教大学)卒。おもに制御系のプログラマとして、ソフトウェア開発に従事した後、翻訳家として独立。英文雑誌記事の和訳なども手掛ける。訳書は、Scott Meyersらによる「Effective」ソフトウェア開発シリーズ(アスキー、翔泳社)、『コンピュータアーキテクチャのエッセンス[第2版]』(翔泳社)、『Pythonデータ分析/機械学習のための基本コーディング! pandasライブラリ活用入門』(インプレス)など多数。

目次

まえがき

なぜこの本を書いたのか

  • 謝辞
  • ソースコードの入手方法
  • 掲載したコード内の表記について

著者紹介

第1章 値と変数

  • 1.1 JavaScriptを実行する
  • 1.2 型とtypeof演算子
  • 1.3 コメント
  • 1.4 変数宣言
  • 1.5 識別子
  • 1.6 数
  • 1.7 算術演算子
  • 1.8 真偽値/1.9 nullとundefined
  • 1.10 文字列リテラル
  • 1.11 テンプレートリテラル
  • 1.12 オブジェクト
  • 1.13 オブジェクトリテラルの構文
  • 1.14 配列
  • 1.15 JSON
  • 1.16 分割
  • 1.17 高度な分割
  • 演習問題

第2章 制御構造

  • 2.1 式と文
  • 2.2 セミコロンを入れる
  • 2.3 分岐
  • 2.4 真偽性
  • 2.5 比較と等価判定
  • 2.6 型の混ざった比較
  • 2.7 ブール演算子
  • 2.8 switch文
  • 2.9 whileループとdoループ
  • 2.10 各種のforループ
  • 2.11 breakとcontinue
  • 2.12 例外をキャッチする
  • 演習問題

第3章 関数と関数型プログラミング

  • 3.1 関数宣言
  • 3.2 高階関数
  • 3.3 関数リテラル
  • 3.4 アロー関数
  • 3.5 関数による配列処理
  • 3.6 クロージャ
  • 3.7 堅いオブジェクト
  • 3.8 strictモード
  • 3.9 引数の型をチェックする
  • 3.10 引数の過多と過少
  • 3.11 デフォルト引数/3.12 rest(...)パラメータと展開演算子
  • 3.13 分割による名前付き引数のシミュレーション
  • 3.14 ホイスティング(巻き上げ)
  • 3.15 例外をthrow(送出)する
  • 3.16 例外をcatch(キャッチ)する
  • 3.17 finally節
  • 演習問題

第4章 オブジェクト指向プログラミング

  • 4.1 メソッド
  • 4.2 プロトタイプ
  • 4.3 コンストラクタ
  • 4.4 クラス構文
  • 4.5 ゲッターとセッター
  • 4.6 インスタンスフィールドとプライベートメソッド
  • 4.7 static(静的)なメソッドとフィールド
  • 4.8 サブクラス
  • 4.9 メソッドをオーバーライドする
  • 4.10 サブクラスの構築
  • 4.11 class式と匿名クラス
  • 4.12 this参照
  • 演習問題

第5章 数と日付/時刻

  • 5.1 数値リテラル
  • 5.2 数値のフォーマット
  • 5.3 数値の解析
  • 5.4 Numberの関数と定数
  • 5.5 Mathの関数と定数
  • 5.6 「ビッグ」整数
  • 5.7 Dateの構築
  • 5.8 Dateの関数とメソッド
  • 5.9 日付時刻のフォーマット
  • 演習問題

第6章 文字列と正規表現

  • 6.1 文字列とコードポイントシーケンスの変換
  • 6.2 部分文字列
  • 6.3 その他の文字列メソッド
  • 6.4 タグ付きテンプレートリテラル
  • 6.5 無加工(raw)のテンプレートリテラル
  • 6.6 正規表現
  • 6.7 正規表現リテラル
  • 6.8 フラグ
  • 6.9 正規表現とUnicode
  • 6.10 RegExpクラスのメソッド
  • 6.11 グループ
  • 6.12 文字列メソッドと正規表現
  • 6.13 さらに正規表現の置換について
  • 6.14 ちょっと珍しい機能
  • 演習問題

第7章 配列とコレクション

  • 7.1 配列を構築する
  • 7.2 lengthプロパティとインデックスプロパティ
  • 7.3 要素の削除と追加
  • 7.4 その他の配列ミューテータ
  • 7.5 要素を生成する
  • 7.6 要素を探す
  • 7.7 すべての要素を訪問する
  • 7.8 疎な配列
  • 7.9 リダクション(還元)
  • 7.10 マップ
  • 7.11 セット
  • 7.12 弱いマップと弱いセット
  • 7.13 型付き配列
  • 7.14 配列バッファ
  • 演習問題

第8章 国際化

  • 8.1 ロケールという考え方
  • 8.2 ロケールを指定する
  • 8.3 数の整形
  • 8.4 日付と時刻のローカライズ
  • 8.5 照合(コレーション)
  • 8.6 ロケールに関する、その他の文字列メソッド
  • 8.7 複数形の規則とリスト
  • 8.8 その他のロケール機能
  • 演習問題

第9章 非同期プログラミング

  • 9.1 JavaScriptにおける並行処理
  • 9.2 プロミスを作る
  • 9.3 即決するプロミス
  • 9.4 プロミスの結果を取得する
  • 9.5 プロミスの連鎖
  • 9.6 失敗の処理
  • 9.7 複数のプロミスを実行する
  • 9.8 プロミスの競争/9.9 async関数
  • 9.10 asyncの戻り値
  • 9.11 コンカレントなawait
  • 9.12 async関数での例外
  • 演習問題

第10章 モジュール

  • 10.1 モジュールのコンセプト/10.2 ECMAScriptのモジュール
  • 10.3 デフォルトのインポート
  • 10.4 名前付きインポート
  • 10.5 動的なインポート
  • 10.6 エクスポート
  • 10.7 モジュールのパッケージング
  • 演習問題

第11章 メタプログラミング

  • 11.1 シンボル
  • 11.2 シンボルプロパティによるカスタマイズ
  • 11.3 プロパティの属性
  • 11.4 プロパティの列挙
  • 11.5 プロパティの存在をチェックする
  • 11.6 オブジェクトの保護
  • 11.7 オブジェクトを作成または更新する/11.8 プロトタイプのアクセスと更新
  • 11.9 オブジェクトのクローンを作る
  • 11.10 関数のプロパティ
  • 11.11 引数の束縛とメソッドの呼び出し
  • 11.12 プロキシ
  • 11.13 Reflectクラス
  • 11.14 プロキシの不変条件
  • 演習問題

第12章 イテレータとジェネレータ

  • 12.1 イテラブルな値
  • 12.2 イテラブルを実装する
  • 12.3 打ち切り可能なイテレータ
  • 12.4 ジェネレータ
  • 12.5 ネストしたyield
  • 12.6 値を消費するジェネレータ
  • 12.7 ジェネレータと非同期処理
  • 12.8 非同期なジェネレータとイテレータ
  • 演習問題

第13章 TypeScript入門

  • 13.1 アノテーション
  • 13.2 TypeScriptを実行する
  • 13.3 型の用語
  • 13.4 基本型
  • 13.5 複合型
  • 13.6 型推定
  • 13.7 サブタイプ
  • 13.8 クラス
  • 13.9 構造的型付け
  • 13.10 インターフェイス
  • 13.11 インデックス付きプロパティ
  • 13.12 複雑な関数パラメータ
  • 13.13 ジェネリックプログラミング
  • 演習問題

索引

Home 書籍一覧 JavaScriptモダンプログラミング完全ガイド 堅牢なコードを効率的に開発できる! ▲ ページトップへ戻る