|
【カテゴリ】 JavaScript
JavaScript逆引きレシピ 第2版
|
山田祥寛/著
株式会社 翔泳社/発行
定価
3,080円
A5正寸・
576ページ・
2色
ISBN 978-4-7981-5757-3
発刊日:
2018年10月15日
|
本書の特徴
JavaScript開発必須の知識・現場のテクニックを凝縮
本書は、「JavaScriptを利用するWebプログラマ必携の逆引き集」です。
JavaScript(ECMAScript)の基本構文や新記法といった基礎的な知識から、オブジェクト指向、組み込みオブジェクト、関数、オブジェクト指向構文、DOM、ブラウザオブジェクトなどの定石・応用テクニック、開発に役立つツール類まで、実践の場で必ず役立つノウハウ、レシピを提供します。
本書掲載のサンプルは、サポートページからダウンロード可能。
まとめて読んで 更にスキルアップのこんな書籍
- ・TypeScriptプログラミングをしっかり学べる
- 「ゼロからわかる TypeScript入門」(技術評論社)
- ・Vue.jsを新しいAPI「Composition API」で学ぶ
- 「速習 Vue.js 3 - Composition API編」(WINGSプロジェクト)
- ・「Vue.js」をきちんと学びたい方へ
- 「これからはじめるVue.js 3実践入門」(SBクリエイティブ)
- ・シンプルなJSフレームワーク「Vue.js」を素早く学ぼう
- 「速習 Vue.js 3」(WINGSプロジェクト)
- ・ECMAScript をサクッと学びたい方へ
- 「速習 ECMAScript 2020」(WINGSプロジェクト)
- ・JavaScript開発には欠かせないwebpackをサクッと学習
- 「速習 webpack」(WINGSプロジェクト)
- ・JavaScriptの基本知識をきちんと押さえよう
- 「改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで」(技術評論社)
本書について取り上げていただいたブログさま
-
・無限大な夢のあと -
noimpslmtbrkさま
-
【書評】JavaScript逆引きレシピ 第2版 ( @yyamada )(2018年11月25日)
-
・愛しの方眼ノート -
Ryu16.くどい。さま
-
【書評】JavaScript逆引きレシピ 第2版(2018年11月11日)
-
・ぺらラボ -
ぺらラボさま
-
書評:JavaScript逆引きレシピ 第2版(2018年11月08日)
-
・HTML5講習所 -
gengen33さま
-
JavaScript 逆引きレシピ 第2版(2018年11月06日)
Contents |
- 第1章 基本構文
-
1.1 <script>要素
001 HTMLページにJavaScriptのコードを組み込みたい
002 JavaScriptのコードを非同期にロードしたい
003 外部スクリプトを安全にロードしたい
1.2 基本構文
004 JavaScriptのコードを構成する要素を学びたい
005 JavaScriptのコードにコメントを書きたい
006 JavaScriptの危険な構文を取り除きたい
007 変数を利用したい
008 定数を利用したい
009 文字列を出力したい
010 文字列の中で改行やタブを含ませたい
011 複数行にまたがる文字列を表現したい
012 文字列に変数を埋め込みたい
013 数値型の値を表現したい
014 真偽値を表現したい
015 配列を作成したい
016 連想配列を作成したい
017 シンボルを定義したい
018 undefinedとnullの違いを理解したい
1.3 型変換/型判定
019 文字列を数値に変換したい
020 値を文字列型/論理型に変換したい
021 データ型をより簡易に変換したい
- 第2章 演算子/制御構文
-
2.1 演算子
023 四則演算を行いたい
024 i++と++iの違いを知りたい
025 「0.1 * 3」が0.30000000000000004になる理由を知りたい
026 値を演算した結果を変数に代入したい
027 基本型と参照型の違いを知りたい(代入と比較)
028 配列の内容を別々の変数に代入したい
029 オブジェクトの内容を別々の変数に分割代入したい
030 左辺と右辺の値を比較したい
031 ==、===の違いを知りたい
032 条件によって値が変化する式を表現したい
033 論理演算を行いたい
034 論理演算で式が無視される場合を知りたい
035 ビット演算を行いたい
2.2 制御構文
036 条件によって処理を分岐したい
037 変数の値によって処理を振り分けたい
038 条件によって処理を繰り返し実行したい
039 指定の回数だけ処理を繰り返したい
040 オブジェクトのプロパティを順に列挙したい
041 配列などの内容を順に列挙したい
042 イテレーターの仕組みを理解したい
043 ループを途中で中断/スキップしたい
2.3 例外処理
044 例外を処理したい
045 例外を投げたい
- 第3章 組み込みオブジェクト[基本編]
-
3.1 数学
046 小数点以下の数値を丸めたい
047 任意の桁数で小数点数を丸めたい
048 n進数を求めたい
049 乱数を求めたい
050 べき乗、平方根/立方根を求めたい
051 絶対値/三角関数/対数などの数学演算を実行したい
3.2 文字列
052 文字列の長さを取得したい
053 大文字/小文字を変換したい
054 文字列前後の空白を除去したい
055 文字列から部分文字列を取り出したい
056 特定の文字列を検索したい
057 文字列に特定の部分文字列が含まれるかを判定したい
058 文字列をn回繰り返したものを生成したい
059 文字列が指定長になるように任意の文字で補足したい
3.3 正規表現
060 正規表現を利用したい
061 正規表現で文字列のマッチングをチェックしたい
062 正規表現でマッチした文字列を取得したい
063 正規表現で複数行にわたる文字列を検索したい
064 できるだけ短い文字列にマッチさせたい
065 正規表現でUnicode文字列を扱いたい
066 正規表現での検索結果をより詳細に取得したい
067 正規表現パターンのグループに名前を付けたい
068 正規表現で文字列を置換したい
069 正規表現で文字列を分割したい
3.4 日付
070 日付/時刻情報を設定したい
071 日付/時刻情報を個別に設定したい
072 日付/時刻要素を取得したい
073 日付文字列からタイムスタンプ値を取得したい
074 日付/時刻値を文字列に変換したい
075 日付/時刻値を加算/減算したい
076 日付/時刻値の差を求めたい
3.5 Promise
077 Promiseオブジェクトで非同期処理を実装したい
078 複数の非同期処理を順に実行したい
079 複数の非同期処理を並行して実行したい
080 複数の非同期処理のどれかが成功したところで処理を実行したい
081 Promiseの処理を同期的に記述したい
082 非同期処理を反復処理したい
3.6 その他
083 文字列をURIエスケープしたい
084 オブジェクト⇔JSON文字列を相互変換したい
- 第4章 組み込みオブジェクト[Array/Set/Map編]
-
4.1 配列
085 配列の要素を追加/削除したい
086 配列に配列を連結したい
087 オブジェクト/ハッシュ同士をマージしたい
088 配列のサイズを取得したい
089 配列の内容(要素の位置)を検索したい
090 配列の内容(要素の有無)を検索したい
091 配列の要素を結合したい
092 配列の一部を抜き出したい
093 配列の内容を置き換えたい
094 配列内の要素を特定の値に設定したい
095 配列の要素を並べ替えたい
096 配列内の要素を別の位置に移動したい
097 配列ライクなオブジェクトを配列に変換したい
098 配列を複製したい
099 配列の内容を順に処理したい
100 配列の要素を順番に加工したい
101 配列の内容を特定の条件で絞り込みたい
102 配列の要素がすべて与えられた条件に合致するかを判定したい
103 配列の要素が1つでも与えられた条件に合致するかを判定したい
104 任意の条件で配列内を検索したい
105 配列内の要素を順に処理して単一の結果にまとめたい
4.2 マップ
106 マップを作成したい
107 マップに値を設定/取得したい
108 マップにキーが存在するかを判定したい
109 マップから既存のキーを削除したい
110 マップからすべてのキー/値を取り出したい
4.3 セット
111 セットを作成したい
112 セットに値を追加したい
113 セットに値が存在するかを判定したい
114 セットからすべての値を取り出したい
115 セットから既存の値を削除したい
116 配列から重複を除去したい
- 第5章 関数
-
5.1 関数の基本
117 ユーザー定義関数を定義したい
118 関数リテラルをよりシンプルに表現したい
119 引数の既定値を設定したい
120 必須の引数をチェックしたい
121 名前付き引数を受け取りたい
122 引数のオブジェクトから特定のプロパティだけを取り出したい
123 可変長引数の関数を定義したい
124 可変長引数に配列を渡したい
125 関数を引数として渡したい
126 関数から複数の値を返したい
127 thisを固定して関数/メソッドを呼び出したい
128 for...ofで列挙可能な値を生成したい
129 ジェネレーターから別のジェネレーターを呼び出したい
130 テンプレート文字列への変数埋め込み時に処理を挟みたい
5.2 スコープ
131 変数の有効範囲を知りたい
132 varとletによるスコープの違いを知りたい
133 「変数の巻き上げ」とは何かを知りたい
5.3 ES2015より前の関数構文
134 引数の既定値を設定したい
135 必須の引数をチェックしたい
136 名前付き引数を受け取りたい
137 可変長引数の関数を定義したい
138 すべての変数をローカルスコープに押し込めたい
- 第6章 オブジェクト指向構文
-
6.1 オブジェクト指向構文
139 クラスを定義したい
140 コンストラクターを定義したい
141 コンストラクターでの初期化コードを簡単化したい
142 メソッドを定義したい
143 プロパティのゲッター/セッターを定義したい
144 静的メソッドを定義したい
145 クラス定数を定義したい
146 クラスにあとからメソッドを追加したい
147 外部からアクセスできないプロパティ/メソッドを定義したい
148 クラスを継承したい
149 基底クラスのメソッド/コンストラクターを上書きしたい
151 オブジェクトの内容をfor...of命令で列挙可能にしたい
152 イテレーターをより簡単に実装したい
153 モジュールを定義したい
154 モジュールをインポートするさまざまな記法を知りたい
6.2 ES2015より前のオブジェクト指向構文
155 クラスを定義したい
156 クラスにメソッドを追加したい
157 クラスに静的メンバーを追加したい
158 クラスを継承したい
159 クラス名の衝突を回避したい
160 階層を持った名前空間を定義したい
6.3 オブジェクトの操作
161 オブジェクトを作成したい
162 オブジェクトのプロパティを削除したい
163 オブジェクト生成時にプロトタイプ/プロパティを細かく設定したい
164 不変オブジェクトを定義したい
165 オブジェクトの基本動作をカスタマイズしたい
- 第7章 DOM[基本編]
-
7.1 要素の取得
166 id値をキーに要素を取得したい
167 タグ名をキーに要素を取得したい
168 name属性をキーに要素を取得したい
169 class属性をキーに要素を取得したい
170 セレクター式で要素を検索したい
7.2 属性/テキストの操作
171 要素の属性を設定したい
172 要素の属性を取得したい
173 要素の属性を削除したい
174 要素に指定の属性が存在するかどうかを判定したい
175 要素のプロパティを取得/設定したい
176 要素配下のテキストを設定したい
7.3 フォームの操作
177 テキストボックス/テキストエリアの値を取得/設定したい
178 選択ボックスの値を取得/設定したい
179 ラジオボタンの値を取得したい
180 チェックボックスの値を取得したい
181 ラジオボタン/チェックボックスの値を設定したい
182 複数選択できるリストボックスの値を取得/設定したい
183 ファイルの情報を参照したい
184 テキストファイルを読み込みたい
185 バイナリファイルを読み込みたい
186 ファイルをアップロードしたい
7.4 フォーム検証
187 フォームへの入力値の妥当性を検証したい
188 検証の成否に応じてスタイルを切り替えたい
189 検証メッセージをカスタマイズしたい
190 JavaScript独自のエラー検証を実装したい
7.5 文書ツリーの操作
191 親子/兄弟要素の間を行き来したい
192 親子/兄弟ノードの間を行き来したい
193 新規に要素を作成したい
194 新規の要素を任意の箇所に挿入したい
195 既存の要素を移動したい
196 複雑なコンテンツを動的に組み立てたい
197 既存の要素を別の要素で置き換えたい
198 要素を複製したい
199 異なる要素同士を入れ替えたい
- 第8章 DOM[スタイル/イベント編]
-
8.1 スタイルの操作
201 要素のスタイルを変更したい
202 スタイルクラスを設定/除外したい
8.2 イベント処理
203 イベントの発生に応じて処理を実行したい
204 ブラウザー上で利用できるイベントを理解したい
205 文書のロードが完了してからコードを実行したい
206 既存のイベントリスナーを削除したい
207 イベントに関わる情報を取得したい
208 イベント発生時のマウス情報を取得したい
209 イベント発生時のキー情報を取得したい
210 独自データ属性でイベントリスナーに値を渡したい
211 イベントリスナーにパラメーターを渡したい
212 イベントの伝播について理解したい
213 イベントの伝播をキャンセルしたい
214 イベント本来の挙動をキャンセルしたい
215 まだない要素にイベントリスナーを登録したい
216 初回のクリック時にだけ処理を実行したい
- 第9章 ブラウザーオブジェクト[基本編]
-
9.1 ウィンドウ
217 Windowオブジェクトについて知りたい
218 確認ダイアログを表示したい
219 一定時間のあとで処理を実行したい
220 一定時間おきに処理を実行したい
221 ウィンドウサイズを取得したい
222 ページを指定位置までスクロールしたい
223 ページを指定量だけスクロールしたい
224 特定の要素までページをスクロールしたい
9.2 コンソール
225 コンソールにログを出力したい
226 コンソールでオブジェクトを出力したい
227 要素オブジェクトをログに出力したい
228 コードの実行時間を計測したい
229 ある条件が偽の場合にだけログを出力したい
230 実行スタックトレースを出力したい
231 特定のコードが何度実行されたかをカウントしたい
232 ログをグループ化したい
9.3 ロケーション/履歴/ブラウザー情報
233 ページを移動したい
234 クエリ情報を取得したい
235 ブラウザー履歴に従ってページを前後に移動したい
236 履歴に現在のページの状態を保存したい
237 ブラウザーの種類/バージョンを知りたい
238 ブラウザーが特定の機能をサポートしているかを判定したい
9.4 位置情報
239 現在の位置情報を取得したい
240 位置取得時にエラー処理や取得オプションを設定したい
241 定期的に位置情報を取得したい
9.5 Web Storage&クッキー
242 クッキーを設定したい
243 既存のクッキーを取得したい
244 ブラウザーに大きなデータを保存したい
245 ストレージにオブジェクトを出し入れしたい
246 ストレージの内容をすべて参照したい
247 ストレージの内容を削除したい
248 ストレージの変更を検知したい
9.6 音声/動画の再生
249 音声ファイルを再生したい
250 動画ファイルを再生したい
251 音声/動画ファイルを複数ブラウザーに対応したい
252 動画ファイルに字幕を付けたい
253 音声/動画ファイルをスクリプトから再生したい
254 音声/動画の音量や再生スピードを調整したい
9.7 Canvas
255 プラグインレスで図形を描画したい
256 キャンバスに矩形を描画したい
257 キャンバスに直線を描画したい
258 多角形を描画したい
259 図形の描画スタイルを設定したい
260 キャンバスの描画色にグラデーション効果を適用したい
261 円/円弧を描画したい
262 ベジェ曲線を描画したい
263 キャンバスにテキストを描画したい
264 キャンバスに画像を埋め込みたい
265 特定の領域に沿って画像を切りぬきたい
266 画像を縦/横方向に繰り返し貼り付けたい
267 画像を拡大/回転/移動/変形したい
268 キャンバスの内容をData URL形式で出力したい
- 第10章 ブラウザーオブジェクト[通信編]
-
10.1 Fetch
269 非同期通信(fetch)でデータを取得したい
270 通信エラー時の処理を実装したい
271 クエリ情報経由でデータを送信したい
272 ポストデータを送信したい
273 JSON形式のポストデータを送信したい
274 プロキシで別オリジンのサーバーと通信したい
275 CORSで別オリジンのサーバーと通信したい
276 通信時にクッキーを送信したい
277 fetch-jsonpでJSON形式のWeb APIにアクセスしたい
10.2 XMLHttpRequest
278 非同期通信(XMLHttpRequest)でデータを取得したい
279 非同期通信でデータをポストしたい
280 XML形式のデータを取得したい
281 JSONPでJSON形式のWeb APIにアクセスしたい
10.3 JavaScript間の通信
282 バックグラウンドでJavaScriptのコードを実行したい[ワーカー編]
283 バックグラウンドでJavaScriptのコードを実行したい[起動編]
284 ウィンドウ/フレーム間でメッセージを交換したい
- 第11章 開発に役立つツール類
-
11.1 Node.js
285 Node.jsのプロジェクトを準備したい
11.2 Babel
286 ES2015以降のコードをES5のコードに変換したい(babel-cli)
287 ES2015以降で用意されたオブジェクト/メソッドを利用したい
288 ブラウザー上でBabelを利用したい
11.3 webpack
289 モジュール構成のアプリを1ファイルにまとめたい
290 webpackの挙動を設定したい
291 コードを変更したときに自動的にバンドルを実行したい
292 webpackとBabelを連携したい
11.4 ESLint
293 JavaScriptの「べからず」な構文を検出したい
294 編集中にリアルタイムにコードを検査したい
295 ESLintのルールをカスタマイズしたい
11.5 JsDoc
296 コメントから手軽に仕様書を作成したい
- COLUMN
-
ECMAScriptとは?
ECMAScript仕様確定までの流れ
ECMAScriptの歴史
ブラウザー搭載の開発者ツール(1)――基本機能
ブラウザー搭載の開発者ツール(2)――文書ツリー/スタイルシートの確認
ブラウザー搭載の開発者ツール(3)――JavaScriptのデバッグ
ブラウザー搭載の開発者ツール(4)――さまざまなブレイクポイント
ブラウザー搭載の開発者ツール(5)――コードの整形
JavaScriptをより深く学ぶための参考書籍
ブラウザー搭載の開発者ツール(6)――通信のトレース
|
|