| 
		
 
  
 
 
  
  
	 | 
	
		 
	
		【カテゴリ】 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)――通信のトレース 
	 
 	
	 | 
	 
 
	
		 
	
 
	 |