ISBN 9784873117836
初めてのJavaScript 第3版 : ES2015以降の最新ウェブ開発
- 出版社
- オライリー・ジャパン
- 刊行
- 2017-01
概要
ES6の全機能をフロントエンドからNode.jsまで体系的に習得する
想定読者
JavaScriptをES5以前の書き方で学んだ既存プログラマー、またはES6を起点にJSを本格習得したい入門〜中級者
こんな人には向いていない
- let/const・アロー関数・Promiseをすでに日常的に使いこなしているエンジニアには、説明の丁寧さが冗長に映る
- React・Vue・TypeScriptなど特定フレームワークや型システムの応用知識を主目的とする読者には扱いが入門止まり
- Node.jsの本番設計・スケール対策を求める場合、本書のサーバーサイド章は概論にとどまる
この本で身につくこと
let/constのブロックスコープとホイスティング挙動を理解し、varとの適切な使い分け判断ができる- イテレータ・ジェネレータ・プロキシといったES6固有の機能を実際のユースケースで適用できる
- Promiseとasync/awaitを用いた非同期プログラミングパターンを自分で実装できる
- プロトタイプチェーンからES6クラス構文まで、OOPを一貫した流れで理解できる
- クライアントサイド(DOM・jQuery)とサーバーサイド(Node.js)を同一書籍で俯瞰し、JavaScriptの全体像を把握できる
ハイライト(外部からの言及)
letやconstによる宣言とスコープ、関数の基本と高度な使い方、オブジェクトとオブジェクト指向プログラミング、イテレータやジェネレータやプロキシといったES6の新機能、非同期プログラミング、クライアントサイドのDOMやjQuery、サーバーサイドのNode.jsなど、JavaScriptの最新バージョンを使った開発に関する総括的な知識をバランスよく得られます — 出典
入門書でありながら高度な機能まで網羅するという本書の特徴が端的に示されており、購買判断の軸となる
タイトルに「初めての」と名前がついておりますが、情報量がかなり多く、ある程度知識のある方でないと全ページの内容を深く理解できないと思います。(私が最初そうでした) — 出典
HTML5資格合格者が試験対策で参照した際の証言。タイトルの「初めての」という印象と実際の情報密度のギャップを率直に指摘しており、対象読者の自己確認を促す購入判断材料となる
JavaScriptにおいては特に、オブジェクトの使い方にも慣れておくとスムーズでしょう。(初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発の第9章が最も良い説明だと思います。) — 出典
VuexおよびVue学習の前提知識解説記事が、本書第9章(オブジェクトとOOP)を章単位で明示的に推薦しており、フレームワーク学習の参照書として機能していることが示されている
読了後にできること
Before(読む前): varのスコープの意図しない挙動に悩み、コールバックのネストで非同期処理を書いていた
After(読み終えた後): let/constで適切なスコープを設計し、Promise/async-awaitで可読性の高い非同期コードを書ける
章立て
第1章 JavaScriptの歴史と開発環境
ES2015 以降の前提を整理する導入。本書の対象読者を確認できる章
第2章 初めてのJavaScriptアプリ
最小ハンズオン。本書の例題スタイルが掴める
第3章 変数、定数、リテラル、データ型
let/const vs var のスコープ差と undefined/null の使い分けは初読で確実に押さえたい。ES5 経験者は var との違いに集中して読む
第4章 制御フロー
for...of と for...in の差異、switch 文の fall-through 挙動が実務バグの温床。後続章の誤動作デバッグを減らすために正確に理解しておく
第5章 式と演算子
厳密等価(===)と抽象等価(==)の差、短絡評価パターン。DOM 操作・API 処理で繰り返し出てくる前提知識として第3章と合わせて習得する
第6章 関数
JavaScript の関数=第一級値という設計の理解の起点
第7章 スコープ
let/const と var、レキシカルスコープ。実務で詰まりやすい点が集中する章
第8章 配列
map/filter/reduce など関数型メソッドとスプレッド構文による配列結合。React の props 操作やデータ変換で最も頻繁に戻ってくる章の一つ
第9章 オブジェクトとオブジェクト指向プログラミング
プロトタイプチェーン / class 構文の関係を理解する章
第10章 マップとセット
Map(非文字列キー)と Set(重複排除)の実用パターン。使用頻度は限定的だが、パフォーマンス改善の選択肢として把握しておく概念
第11章 例外とエラー処理
try/catch/finally と Error サブクラスの設計を扱う。第14章の async/await エラーハンドリングを学ぶ前に把握しておくと理解が深まる
第12章 イテレータとジェネレータ
イテレータプロトコルとジェネレータ関数を扱う ES6 固有の高度機能。実務使用頻度は限定的だが、redux-saga やカスタムイテラブル設計の概念基礎となる
第13章 関数のさまざまな利用方法
call/apply/bind・部分適用・デコレータパターンを扱い、this バインディング問題の解決策が集中する。Qiita 引用記事で直接参照された章
第14章 非同期プログラミング
Promise / async-await。React / Node 実務で頻繁に戻ってくる章
第15章 日時
Date のタイムゾーン扱い・月のゼロベースなど落とし穴を整理する。date-fns 等のライブラリ前提なら概要把握にとどめて問題ない
第16章 Math
Math.random や丸め処理など組み込みメソッドの参照章。算術処理が必要なケース以外は必要時に参照する辞書的な使い方が実用的
第17章 正規表現
メールバリデーション・テキスト抽出など実務用途が明確な章。基本パターンとキャプチャグループを押さえれば、実例から必要時に拡張していける
第18章 ウェブブラウザのJavaScript
DOM 操作・イベントハンドリング・BOM API を扱う。フレームワーク利用者でも仮想 DOM の裏側理解の土台となり、デバッグ時にネイティブ DOM 知識が活きる
第19章 jQuery
現代開発では Vanilla JS かフレームワーク直接が主流。ただしレガシーシステム保守や HTML5 プロ認定資格対策では参照価値が残る章
第20章 Node.js
HTTP サーバー・ファイルシステム・npm の基礎を概観する章。本格的なサーバーサイド設計は別書が必要で、Node.js デザインパターン等へのブリッジとなる
第21章 オブジェクトのプロパティに関する詳細
プロパティ記述子(defineProperty)・getter/setter など内部動作を解説。通常開発では意識しないが、フレームワーク内部の動作追跡時に有用
第22章 JavaScript関連の情報源
MDN・ECMAScript 仕様などの継続学習リソースを案内する章。2017 年刊行のため TypeScript 公式・Web.dev 等の後発リソースは別途補完が必要
関連記事 / 参考情報
- Vue/Nuxt開発効率を3倍にするVSCode拡張機能セット — Vue/Nuxt開発環境整備の実践記事。JS基礎をふまえたフロントエンドツール群を紹介
- HTML5プロフェッショナル認定資格Level2 合格記 — HTML5/CSS3/JS対象資格の学習記録。参考書リストの一冊として本書が挙げられている
- JavaScriptの非同期処理について — Promise・async/awaitの仕組みを解説した入門記事。ES6非同期章の補完資料として本書を参照
- グッバイNuxt、ハローReact — Vue/NuxtからReactへの移行体験記。JSの基礎固めを経た学習パスが示唆されている
- JavaScriptのcall, apply, bind, ...スプレッド演算子について — ES6の高度な関数操作を解説。本書の関数章で扱う概念を実例コードで補足する内容
- JavaScript・jQuery 学習のすすめ — JS・jQueryの学習ロードマップ。ES6入門書の選択肢として本書を明示的に推薦している
- 「ES6を理解する」→「素のjavascriptとrails APIを使ってtodoアプリを作成する。」 — 本書でES6を学んだ後、Rails APIと組み合わせてTODOアプリを作る実践記録
学習のヒント
- 1〜4章でJSの基本構造を確認した後、スコープ・クロージャ・オブジェクトを扱う章を集中的に読む。ES6移行で最も詰まりやすいポイントがここに集中しており、本書の実質的な核心部分にあたる
- 非同期プログラミング章(Promise/async-await)は、手元でAPIを叩く小さなサンプルを動かしながら読むと定着が格段に速い。コードを写すだけでなく、コールバック版に書き直す往復が理解を深める
- Node.js章は、クライアントサイドの内容を十分消化してから着手するのが本書の設計上の想定順序。逆順では前提知識の欠落が起きやすい
- 出版が2017年(ES2015対応)のため、optional chaining(
?.)・nullish coalescing(??)・論理代入演算子などES2019以降の機能は別途MDNで補完すること
前提知識
- HTMLとCSSの基本構造の読み書き(本書のDOM・jQuery章の前提として必要)
- いずれかの言語で変数・条件分岐・ループを扱った経験(プログラミング未経験者には説明テンポが速すぎる箇所がある)
次に読む本
JavaScript: The Good Parts
本書でES6の文法全体を習得した後に読むことで、なぜvarやthisの挙動がES6で再設計されたかという言語設計の背景が理解できる。本書が「何を使うか」を教えるのに対し、この本は「何を避けるべきか」という補完的な視点を与える
Node.jsデザインパターン
本書のNode.js章(第20章)はHTTPサーバーとファイル操作の概論にとどまる。本書で非同期処理の基礎を押さえた後、イベントエミッタ・ストリーム・依存性注入などプロダクション設計に��要なパターンへ段階的に進む読み順が自然
プロを目指す人のためのTypeScript入門
本書でJavaScriptのクラス・プロトタイプ・モジュールを一通り理解した後、型アノテーションとジェネリクスを加えることで静的型付け開発に移行できる。Reactをはじめ現代のフロントエンド開発ではTypeScriptが実質必須となっており、JSからの接続点として差分が明確
出版社による内容紹介
JavaScriptの最新規格ES6(ECMAScript 6)をバランスよく解説! ES6(ECMAScript 6)の入門書。シンプルな例題を多用しながらES6によるウェブ開発をわかりやすく丁寧に解説します。従来バージョンを使用中のJavaScriptプログラマーにも、これからJavaScriptを習得したい入門者にも有用な情報が満載です。本書を読めば、letやconstによる宣言とスコープ、関数の基本と高度な使い方、オブジェクトとオブジェクト指向プログラミング、イテレータやジェネレータやプロキシといったES6の新機能、非同期プログラミング、クライアントサイドのDOMやjQuery、サーバーサイドのNode.jsなど、JavaScriptの最新バージョンを使った開発に関する総括的な知識をバランスよく得られます。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。