ISBN 9784873117836

初めてのJavaScript 第3版 : ES2015以降の最新ウェブ開発

初めての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/finallyError サブクラスの設計を扱う。第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 等の後発リソースは別途補完が必要

関連記事 / 参考情報

学習のヒント

  • 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の最新バージョンを使った開発に関する総括的な知識をバランスよく得られます。

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。