jtk

【読書メモ】改訂新版 JavaScript 本格入門

これまでなんとなく書いてやりすごしていた JavaScript を基礎から学習したいと思い、改訂新版 JavaScript 本格入門 を読みました。

Amazon のレビューにあるとおり「初心者向け」ではなく、「本格的にやりたい人向けの入門書」といった感じでした。
他の言語をマスターしたり、プログラムの基礎知識ないと難しい部分(メンバーって何?みたいな)もあり、また全部が頭に入ったわけではないですが、最低限おおまかな JS でできることはわかった気がします。

結果、奥が深すぎる...という感想。。
シンボル、プロトタイプ、this、Promise などまだまだ理解しづらい所もあるので、何ヶ月かに読み返して深く理解できるようにしたいです。 DOM など、jQuery でやってきたことは異常に理解ができるので、要は慣れかな、、と思っています。
Storage オブジェクトはぼやっとしか知らなかったのですが、すごい便利そうです。いままで全部 cookie でやってました。

特に概念的に知らなかった/改めて言語化して理解できた箇所を引用します。

3.1 オプジェクトとは (p.111)

オブジェクトには、オブジェクトを初期化するために、オブジェクトと同名のメソッドが用意されています。この初期化メソッドのことをコンストラクターと呼びます。オブジェクト名は、正確にはコンストラクター名です。
生成されたインスタンスは変数に格納され、以降は、その変数をオブジェクトとして扱えるようになります。インスタンスが格納された変数は、インスタンス変数オブジェクト変数と呼ぶ場合もあります。

4.1 関数とは (p.177)

引数は、関数の挙動を決めるためのパラメータです。呼び出し元から指定された値を受け取るための変数を、カンマ区切りで指定します。仮引数ともいい、関数の内部でのみ参照できます。
戻り値(返り値)は、関数が処理の結果、最終的に呼び出し元に返すための値のことです。通常、関数に末尾にreturn命令を記述して指定します。関数の途中でreturn命令を記述した場合、それ以降の処理は実行されないので、要注意です。

5.1 JavaScript におけるオブジェクト指向の特徴 (p.224)

ここまでに見てきたように、JavaScript はれっきとしたオブジェクト指向言語です。しかし、JavaC++C#といったオブジェクト指向言語とは根本的に異なる点があります。 それは「『インスタンス化/インスタンス』という概念はあるものの、いわゆる『クラス』がなく、『プロトタイプ(ひな形)』という概念だけが存在する」という点です。
プロトタイプとは、「あるオブジェクトの元となるオブジェクト」のこと。JavaScript では、(クラスの代わりに)プロトタイプを利用して、新たなオブジェクトを生成していくことになります。このような性質から、JavaScriptオブジェクト指向は、プロトタイプベースのオブジェクト指向と呼ばれることもあります。