ISBN: 978-4-7981-5757-3
JavaScript開発必須の知識・現場のテクニックを凝縮
本書は、「JavaScriptを利用するWebプログラマ必携の逆引き集」です。JavaScript(ECMAScript)の基本構文や新記法といった基礎的な知識から、オブジェクト指向、組み込みオブジェクト、関数、オブジェクト指向構文、DOM、ブラウザオブジェクトなどの定石・応用テクニック、開発に役立つツール類まで、実践の場で必ず役立つノウハウ、レシピを提供します。
本書掲載のサンプルは、サポートページからダウンロード可能。
更新履歴
- 正誤訂正: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はありません。
お問い合わせ
書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。
お問い合わせの前にFAQ・正誤表をご確認ください。すでに掲載済みの内容については個別回答が難しい場合があります。