![【書評】JavaScript Primer[自身のインデックス構築のためのバイブルに]](https://tasulife-23.com/wp-content/uploads/2021/06/00.jpg)
どうもタスです。
体系的にJavaScriptを勉強したいなと思い、手に取った「JavaScript Primer」。実は、コレ、書籍(紙 or 電子)も出版されているけれど、なんと、Webで無料公開もされている。
私はWeb版を参照したけれど、書籍は書籍版として最適化されているようなので、気になる方がいたらそちらを参考にされたい。
そこで今回は、読書習慣を始めて131冊目の本となった『JavaScript Primer(Web版)』を読了したのでお伝えする。
著者のご紹介(本書引用)
azu
ISO/IEC JTC 1/SC 22/ECMAScript Ad Hoc委員会 エキスパートでECMAScript、JSONの仕様に関わる。 2011年にJSer.infoを立ち上げ、継続的にJavaScriptの情報を発信している。 ライフワークとしてOSSへのコントリビューションをしている。
Suguru Inatomi
長崎生まれ福岡育ち。2016年よりAngular日本ユーザー会の代表を務める。 2018年に日本で一人目のGoogle Developers Expert for Angularに認定される。 日々の仕事の傍ら、AngularをはじめとするOSSへのコントリビューションや翻訳、登壇、イベントの主催などの活動を続けている。
目次
この書籍について
はじめに
著者紹介
読み始める前の事前準備
文章の間違いに気づいたら
第一部:基本文法
JavaScriptとは
コメント
変数と宣言
値の評価と表示
データ型とリテラル
演算子
暗黙的な型変換
関数と宣言
文と式
条件分岐
ループと反復処理
オブジェクト
プロトタイプオブジェクト
配列
文字列
文字列とUnicode
ラッパーオブジェクト
関数とスコープ
関数とthis
クラス
例外処理
非同期処理:コースバック/Promise/Async Function
Map/Set
JSON
Date
Math
ECMAScriptモジュール
ECMAScript
第一部:おわりに
第二部:応用編(ユースケース)
アプリケーション開発の準備
Ajax通信
エントリーポイント
HTTP通信
データを表示する
Promiseを活用する
Node.jsでCLIアプリ
Node.jsでHello World
コマンドライン引数を処理する
ファイルを読み込む
MarkdownをHTMLに変換する
ユニットテストを記述する
Todoアプリ
エントリーポイント
アプリの構成要素
Todoアイテムの追加を実装する
イベントとモデル
Todoアイテムの更新と削除を実装する
Todoアプリのリファクタリング
付録:参考リンク集
付録:JavaScriptチートシート
おわりに
JavaScriptの勉強に最適な一冊
本書は冒頭でもお伝えしたとおり、書籍(紙 or 電子)がある上に、Webで公開までしている。それはもちろん無料である。そして、私がなぜWeb版を読了したのかというと、Web版(電子書籍もかもしれないけれど)は常に最新版に更新し続けられているからである。
それに、Web版ではサンプルコードをその場で動かし、編集できるエディタ&コンソール機能がついている。私はPCとスマホの両方で見たのだが、スマホで見ても特に見辛い、使い辛いということはなかった。中でも、非同期処理なんかは、肌感で理解できるので有用だと思う。
私はJavaScriptの書籍を購入することを目的に、いくつかのサイトを参考にして、本書籍を読むことを決めた。そのサイトでは、本書籍のレベルを「中級者~上級者」と設定していた。確かに、基本文法(第一部)の後半になってくると、初学者だと多少きついかもしれない。
けれど、初学者であっても本書には挑戦して欲しい。そのくらい有用な書籍だと感じた。
ECMAScript 2015を前提とした入門書
本書は、ECMAScript 2015を前提とした入門書で、且つできるだけ最新の情報が盛り込まれている。それは、何も古い情報が無用というわけではない。JavaScriptは後方互換を非常に大切にしているため過去の構文を利用しても問題ないのだが、最新構文を学ぶ理由はどういうことかということも本書から理解できるだろう(特に非同期処理)。
以下の単語で気になったことがあれば、一読の価値が大いにある。ザックリだけれど挙げておく。
- strict mode
- JSとECMAScriptの関係
- ES2015以降、最新情報を導入した説明が多数なされている点(ES2020も導入)
- varでなくlet及びconst(定数ではない理由も)が良い理由(varの巻き上げ)
- 分割代入(変数へ、引数へ、オブジェクトで、配列で)
- falsy
- Nullish coalescing演算子
- 三項演算子
- undefined
- NaN
- デフォルト引数
- 可変長引数(Rest Parameters)
- Arrow Function
- コールバック関数
- Optional chaining演算子
- spread構文
- プロトタイプオブジェクト
- 破壊的なメソッドと非破壊的なメソッド
- メソッドチェーン
- タグつきテンプレート関数
- Unicode
- Code Point
- Code Unit
- サロゲートペア
- スコープ
- クロージャー
- this
- class
- 継承
- 例外処理
- 非同期処理(Promise、Async Function[await])
- JSON
- ECMAScriptモジュール(とCommonJSモジュール)
自身のインデックス構築のためのバイブルに
プログラムは慣れてなんぼなので、正直、書籍を読んだらすぐ組めるかと言えばそうではない。しかし、まずは、こんなことができるのかという知識の取得とインスピレーションの育成にはとても有用である。
後は実際に手を動かし、その都度、得た知識から作成した自身のインデックスより必要な内容を取り出して、その詳細を覚えていなければ、また書籍を調べる。そのような形で知識をプログラミングやその他に還元していくのだと思う。
そのためには、体系的に深く広く知る必要がある。よって、このような書籍は非常に重宝するし、間違いなくブックマーク行きが確実なのである。なにより、案外、ユースケースの章が簡易的(暇になると言っても良いのか)なことが多い書籍の中で、本書はとても実戦に役立ち得るものが多いように感じた。
特に、Veu.jsやNuxt.jsと学ぶ前に一読しておくべきだったなと、後から点と点が線に繋がったことを実感した。