関連サイト
本書の関連ページが用意されています。
内容紹介
変化に対応できる基礎を身につけよう!
本書の「第1部 基本文法」では、JavaScriptの文法と機能について、実際の利用方法を示しながら解説しています。また「第2部 ユースケース」では、小さなアプリケーションを例にあげながら、JavaScriptの現実の開発での使い方にも言及しています。
本書は、プログラミング言語のリファレンスのようにJavaScriptのすべての機能を解説してはいません。ECMAScript 2015以降の新しい書き方を中心に、既存のコードに頻出する古い書き方を含めて解説しています。
JavaScriptは激しく変化している言語です。このような変化に対応できる基礎を身に付けられるよう、単に書き方を解説するのではなく、プログラミングの現場で直面する問題を自分自身で解決するのに必要な調査方法についても焦点を当てています。
書誌情報
- 著者: azu, Suguru Inatomi
- 発行日: 2020-04-27 (紙書籍版発行日: 2020-04-27)
- 最終更新日: 2020-04-27
- バージョン: 1.0.1
- ページ数: 480ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: アスキードワンゴ
対象読者
著者について
azu
ISO/IEC JTC 1/SC 22/ECMAScript Ad Hoc委員会エキスパートでECMAScript、JSONの仕様に関わる。2011年にJSer.infoを立ち上げ、継続的にJavaScriptの情報を発信している。ライフワークとしてOSSへのコントリビューションをしている。
Twitter: https://twitter.com/azu_re
GitHub: https://github.com/azu
Suguru Inatomi
長崎生まれ福岡育ち。2016 年よりAngular 日本ユーザー会の代表を務める。2018 年に日本で一人目のGoogle Developers Expert for Angular に認定される。日々の仕事の傍ら、Angular をはじめとするOSS へのコントリビューションや翻訳、登壇、イベントの主催などの活動を続けている。
Twitter: https://twitter.com/laco2net
GitHub: https://github.com/lacolaco
目次
はじめに
著者紹介
第1部 基本文法
第1章 JavaScriptとは
- 1.1 JavaScriptとECMAScript
- 1.2 JavaScriptってどのような言語?
第2章 コメント
- 2.1 一行コメント
- 2.2 複数行コメント
- 2.3 HTML-like コメント
- 2.4 まとめ
第3章 変数と宣言
- 3.1 const
- 3.2 let
- 3.3 var
- 3.4 変数名に使える名前のルール
- 3.5 まとめ
第4章 値の評価と表示
- 4.1 この書籍で利用するブラウザ
- 4.2 ブラウザでJavaScript を実行する
- 4.3 Console API
- 4.4 ウェブ版の書籍でコードを実行する
- 4.5 コードの評価とエラー
- 4.6 まとめ
第5章 データ型とリテラル
- 5.1 データ型
- 5.2 リテラル
- 5.3 プリミティブ型とオブジェクト
- 5.4 まとめ
第6章 演算子
- 6.1 二項演算子
- 6.2 単項演算子(算術)
- 6.3 比較演算子
- 6.4 ビット演算子
- 6.5 代入演算子(=)
- 6.6 条件(三項)演算子(?と:)
- 6.7 論理演算子
- 6.8 カンマ演算子(,)
- 6.9 まとめ
第7章 暗黙的な型変換
- 7.1 暗黙的な型変換とは
- 7.2 明示的な型変換
- 7.3 明示的な変換でも解決しないこと
- 7.4 まとめ
第8章 関数と宣言
- 8.1 関数宣言
- 8.2 関数の引数
- 8.3 可変長引数
- 8.4 関数の引数と分割代入
- 8.5 関数はオブジェクト
- 8.6 メソッド
- 8.7 まとめ
第9章 文と式
- 9.1 式
- 9.2 文
- 9.3 function 宣言(文)とfunction 式
- 9.4 まとめ
第10章 条件分岐
- 10.1 if 文
- 10.2 switch 文
- 10.3 まとめ
第11章 ループと反復処理
- 11.1 while 文
- 11.2 do-while 文
- 11.3 for 文
- 11.4 配列のforEach メソッド
- 11.5 break 文
- 11.6 continue 文
- 11.7 for...in 文
- 11.8 for...of 文
- 11.9 まとめ
第12章 オブジェクト
- 12.1 オブジェクトを作成する
- 12.2 プロパティへのアクセス
- 12.3 オブジェクトと分割代入
- 12.4 プロパティの追加
- 12.5 プロパティの存在を確認する
- 12.6 toString メソッド
- 12.7 オブジェクトの静的メソッド
- 12.8 まとめ
第13章 プロトタイプオブジェクト
- 13.1 Object はすべての元
- 13.2 プロトタイプメソッドとインスタンスメソッドの優先順位
- 13.3 in 演算子とObject#hasOwnProperty メソッドの違い
- 13.4 オブジェクトの継承元を明示するObject.create メソッド
- 13.5 Array もObject を継承している
- 13.6 まとめ
第14章 配列
- 14.1 配列の作成とアクセス
- 14.2 オブジェクトが配列かどうかを判定する
- 14.3 配列と分割代入
- 14.4 配列から要素を検索
- 14.5 追加と削除
- 14.6 配列同士を結合
- 14.7 配列の展開
- 14.8 配列をフラット化
- 14.9 配列から要素を削除
- 14.10 破壊的なメソッドと非破壊的なメソッド
- 14.11 配列を反復処理するメソッド
- 14.12 メソッドチェーンと高階関数
- 14.13 まとめ
第15章 文字列
- 15.1 文字列を作成する
- 15.2 エスケープシーケンス
- 15.3 文字列を結合する
- 15.4 文字へのアクセス
- 15.5 文字列とは
- 15.6 文字列の分解と結合
- 15.7 文字列の長さ
- 15.8 文字列の比較
- 15.9 文字列の一部を取得
- 15.10 文字列の検索
- 15.11 正規表現オブジェクト
- 15.12 文字列の置換/削除
- 15.13 文字列の組み立て
- 15.14 まとめ
第16章 文字列とUnicode
- 16.1 Code Point
- 16.2 Code Point とCode Unit の違い
- 16.3 サロゲートペア
- 16.4 Code Point を扱う
- 16.5 まとめ
第17章 ラッパーオブジェクト
- 17.1 プリミティブ型とラッパーオブジェクト
- 17.2 プリミティブ型の値からラッパーオブジェクトへの自動変換
- 17.3 まとめ
第18章 関数とスコープ
- 18.1 スコープとは
- 18.2 ブロックスコープ
- 18.3 スコープチェーン
- 18.4 グローバルスコープ
- 18.5 関数スコープとvar の巻き上げ
- 18.6 関数宣言と巻き上げ
- 18.7 クロージャー
- 18.8 メモリ管理の仕組み
- 18.9 まとめ
第19章 関数とthis
- 19.1 実行コンテキストとthis
- 19.2 関数とメソッドにおけるthis
- 19.3 Arrow Function 以外の関数におけるthis
- 19.4 this が問題となるパターン
- 19.5 Arrow Function とthis
- 19.6 まとめ
第20章 クラス
- 20.1 クラスの定義
- 20.2 クラスのインスタンス化
- 20.3 クラスのプロトタイプメソッドの定義
- 20.4 クラスのアクセッサプロパティの定義
- 20.5 静的メソッド
- 20.6 2 種類のインスタンスメソッドの定義
- 20.7 プロトタイプオブジェクト
- 20.8 プロトタイプチェーン
- 20.9 継承
- 20.10 ビルトインオブジェクトの継承
- 20.11 まとめ
第21章 例外処理
- 21.1 try
- 21.2 throw 文
- 21.3 エラーオブジェクト
- 21.4 エラーとデバッグ
- 21.5 console.error とスタックトレース
- 21.6 まとめ
第22章 非同期処理: コールバック/Promise/Async Function
- 22.1 同期処理
- 22.2 非同期処理
- 22.3 非同期処理はメインスレッドで実行される
- 22.4 非同期処理と例外処理
- 22.5 エラーファーストコールバック
- 22.6 Promise
- 22.7 Async Function
- 22.8 Async Function と組み合わせ
- 22.9 まとめ
第23章 Map/Set
- 23.1 Map
- 23.2 Set
- 23.3 まとめ
第24章 JSON
- 24.1 JSON とは
- 24.2 JSON オブジェクト
- 24.3 JSON にシリアライズできないオブジェクト
- 24.4 toJSON メソッドを使ったシリアライズ
- 24.5 まとめ
第25章 Date
- 25.1 Date オブジェクト
- 25.2 現実のユースケースとDate
- 25.3 まとめ
第26章 Math
- 26.1 Math オブジェクト
- 26.2 乱数を生成する
- 26.3 数値の大小を比較する
- 26.4 数値を整数にする
- 26.5 まとめ
第27章 ECMAScript モジュール
- 27.1 ECMAScript モジュールの構文
- 27.2 ECMAScript モジュールを実行する
第28章 ECMAScript
- 28.1 ECMAScript のバージョンの歴史
- 28.2 Living Standard となるECMAScript
- 28.3 仕様策定のプロセス
- 28.4 プロポーザルの機能を試す
- 28.5 仕様や策定プロセスを知る意味
- 28.6 まとめ
第1部のおわりに
第2部 ユースケース
第29章 アプリケーション開発の準備
- 29.1 Node.js のインストール
- 29.2 npx コマンドによるnpm パッケージの実行
- 29.3 ローカルサーバーのセットアップ
- 29.4 まとめ
第30章 ユースケース: Ajax 通信
- 30.1 エントリーポイント
- 30.2 HTTP 通信
- 30.3 データを表示する
- 30.4 Promise を活用する
第31章 ユースケース: Node.js でCLI アプリケーション
- 31.1 Node.js でHello World
- 31.2 コマンドライン引数を処理する
- 31.3 ファイルを読み込む
- 31.4 Markdown をHTML に変換する
- 31.5 ユニットテストを記述する
- 31.6 まとめ
第32章 ユースケース: Todo アプリケーション
- 32.1 エントリーポイント
- 32.2 アプリの構成要素
- 32.3 Todo アイテムの追加を実装する
- 32.4 イベントとモデル
- 32.5 Todo アイテムの更新と削除を実装する
- 32.6 Todo アプリのリファクタリング
- 32.7 Todo アプリのまとめ
付録A 参考リンク集
- A.1 開発を補助するツール
- A.2 JavaScript の実行プラットフォーム