DPCデータの分析とかやるブログ

DPCデータの分析なんかをテキトーにやってます。

「改訂新版JavaScript本格入門」を読みました

今書いているアプリケーションでは、ブラウザを使ったデータの可視化をやってます。
残念ながらその部分はJavaScriptに頼らざるを得ず、コピペと当てずっぽうではコードが動かないので、本を買いました。 「改訂新版JavaScript本格入門」は、痒いところに手の届く参考書です。
実は「JavaScript : The Good Parts」も読んだんですが、流石にもう2017年です。今なら「改訂新版JavaScript本格入門」がオススメですね。

名著「The Good Parts」よりこちらを勧めるのはなんで?

JavaScriptの言語仕様が変わりすぎだからです。
とりわけECMAScript2015での追加は凄まじく、「本格入門」でも章の半分が「今までの話」でもう半分が「これからの話」に分かれてるとかザラでした。Python界隈が未だに 2.x系と3.x系で議論してるのが、微笑ましくなるような強烈さです。
Wikipediaで追加事項を見てみましょう。

クラス、モジュール、イテレータ、for/ofループ、Pythonスタイルのジェネレータ、アロー関数、2進数および8進数の整数リテラル、Map、Set、WeekMap、WeekSet、プロキシ、テンプレート文字列、let、const、型付き配列、デフォルト引数、Symbol、Promise、分割代入、可変長引数

さらっと「クラス、モジュール、イテレータ」とか出てきてますね。
今までどうしてたんでしょうか・・・と思ったら、プロトタイプチェーンなるものが使われていたそうです。
また、アロー関数は冗長なfunction () { ... }記法を簡略化したもので、() => {....}(場合により{}省略可)というモダン何だかScalaっぽい記法が使えます。
constは変更不可能な変数(というか定数)定義で、やっぱりScalaのvalっぽい関数型言語で流行のイミュータブルな奴ですね。
私のような、ECMA2015以降にJavaScriptを触り始めた、完全な門外漢でも驚く変わりようです。
(一応書いておくと、クラスは今までのオブジェクト仕様のシンタックスシュガーだそうで、根本から入れ替えたというわけでもなさそうですが・・・)
正直、以前はJavaScriptに手を出すつもりはありませんでしたが、ブラウザに手を出せば絶対に逃げられない言語です。何かの機会に学ばざる得なくなるので、解説本をざっと読むのはいいと思いました。 (自分が公開しているDPCチェッカーの、あまりに酷いJavaScript部分はあとで書き直します・・・)