前回の自動テストに続き、書籍によるJavascriptのインプットを行いました。
良かったところ
一言にJavascriptといっても基本文法から関数やクラス、DOM操作や各種ライブラリなど、その使用範囲は多岐に渡ります。本書はその全てを網羅することを目的とせず、プログラミング経験者が、初めてJavascriptに触れる際に手にする入門書となっています。
またWeb版と書籍版の2つがあり、Web版では本家Javascriptの更新に合わせて内容も随時改訂が入ります。書籍は末尾に索引が入っています。
書籍内でも触れられていますが、Javascript自体のリファレンスとしては実質の公式ドキュメントとなっているMDN Web Docsがおすすめです。
序盤は基本文法から入り、他の言語と同じく変数や定数・演算子やデータ型・条件分岐や反復処理といった内容から解説していきます。随所に例となるコードが書かれており、解説したいものがどのような動きをするか書籍の中でわかるようになっています。
Web版では例となるコードの下に実行ボタンがあり、ボタンを押して実際にそのコードがどのように動くかを確かめることもできます。
後述の「難しかったところ」でも触れますが、次第に解説される内容は複雑で難解になってきます。本書は第1章〜第32章までで構成されており、一度読んだだけでは到底理解しきれないので、必要に応じて振り返りで読み返す必要があると思いました。
学んだこと
(第一部)基本文法
第1部〜第9部
- Javascriptについて
- Javascriptのセットアップ
- 変数・定数の宣言、データ型とリテラル、型変換、文字と式・演算子について
第10部〜第21部
- 条件分岐と反復処理、オブジェクトとプロトタイプオブジェクト
- 配列と文字列(Unicode)について
- 関数とスコープ
- thisキーワード・ラッパーオブジェクトについて
- クラス
- 例外処理
第22部〜第28部
- 非同期処理について
- コールバック・Promise・Async Function
- Mapオブジェクト・Setオブジェクト
- JSONデータフォーマットについて
- Dateオブジェクト・Mathオブジェクト
- ECMAScriptモジュールについて
- ECMAScriptのバージョンと歴史
第2部(ユースケース)
第29部〜第32部
難しかったこと
ブラウザがあればそのブラウザ上で動作し、気軽に環境構築が行えるJavascriptですが、今までのRailsのエラー表示画面と違って、ブラウザのデベロッパーツールの中で表示されているエラーから原因を究明しなければならず、その違いに慣れるまで苦労しました。
また、これもRubyとの比較になってしまいますが、全体を通して基本文法の中で記述する記号や文字量が多く、構文エラーの原因となる事が多々ありました。いかにRubyの文法がシンプルで記述量の少ないものであるという事が再認識されました。
(Rubyはシンプルであるが故に、各文法をしっかり理解していないとコードを読み解く事が難しいという点もありますが…)
各解説単元で振り返ると、Javascriptの性質でもある「暗黙的な型変換」が厄介なものであるという印象を受けました。開発者が意図していない型解釈をしてしまうと、プログラムのコード自体が意図しない動きとなってしまうのはバグの原因にもなりますし、エラー対策のために時間を取られてしまう原因にもなりそうでした。
オブジェクトやプロトタイプオブジェクト、thisキーワード、非同期処理などについては理解がまだまだ浅いと思うので、再度実務で取り扱う事になった際に復習が必須だと思いました。