書籍詳細(JavaScript逆引きレシピ 第2版)

JavaScript逆引きレシピ 第2版 書影

ISBN: 978-4-7981-5757-3

JavaScript逆引きレシピ 第2版

山田祥寛 著

著者山田祥寛
出版社翔泳社
価格2,800円(税別)
判形A5正寸・2色
ページ数576ページ
発売日2018年10月15日
対象レベル初中級

JavaScript開発必須の知識・現場のテクニックを凝縮

本書は、「JavaScriptを利用するWebプログラマ必携の逆引き集」です。
JavaScript(ECMAScript)の基本構文や新記法といった基礎的な知識から、オブジェクト指向、組み込みオブジェクト、関数、オブジェクト指向構文、DOM、ブラウザオブジェクトなどの定石・応用テクニック、開発に役立つツール類まで、実践の場で必ず役立つノウハウ、レシピを提供します。
本書掲載のサンプルは、サポートページからダウンロード可能。
JavaScript逆引きレシピ 第2版 ロゴ

更新履歴

  • 正誤訂正:2020年7月30日 更新

目次

  • 第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)――通信のトレース

正誤表

該当頁 該当箇所 修正刷
訂正箇所 訂正事項 更新日
p.138 本文1行目 2刷
JSON(JavaScript Object Notification) JSON(JavaScript Object Notation 2020/07/30

FAQ

現在、FAQはありません。

お問い合わせ

書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。

Powered by メールフォーム 『オレンジフォーム』