南極の図書館

ペンギンが寝ていた…。

「初めてのJavaScript 第2版」を読んでいるので備忘としてまとめ。その2

その1の続きで4章と5章について。

個人的な「意見」は殆ど入れてません。大事なところは引用で。

〜第4章〜 JavaScriptオブジェクト
P63
JavaScriptの全オブジェクトは本質的には配列として実現されていますが、実際上はそのような扱いをしないのが普通です。

なお、配列を表したいときはArrayオブジェクトを使う。


・String(P70)
HTMLフォーマット関連メソッドは、anchorとlinkのみ使い、それ以外はCSSを使った方が良い。特にblink(旧式のHTMLでXHTMLサポート外)はできるだけ使わないようにする。


・連想配列(P94)
dic[book] = "hon" のように使う。
(個人的にあまり馴染みがなかったのでメモ)


それ以外は、RegExp、Date、Math、Array等があり、読めば覚える。
ボリュームはあるので何度か読み直すことになるはず。

〜第5章〜 関数
関数はJavaScript言語の主要素のひとつですが、見た目と実態とはかなり異なります。
分の仲間のように見えるのですが、実際は前の章で説明したようなものと同様、オブジェクトなのです。
(略)
無名関数、関数クロージャなど、少し難しい概念も登場します。

・宣言型(静的関数)
基本データ型(数値、文字列、真偽値)は値呼び出しで、オブジェクトは参照呼出しとなる。
なお、基本データ型を書き変えたい場合は、呼び出しを以下のようにしてreturnを使う。

value = changeVal(value);


・無名関数
ループの場合は、何度も構文解析されてしまう。メモリの消費が多め。
P104の例がすばらしい。
return ParseInt(x)+PerseInt(y)
について、「var」定義で「+」では文字列で型付けされるのか、と納得。
→ x=4,y=6としてreturn x+yをすると、46が戻る。


・関数リテラル(関数式)
再起関数:DOMで使う場合がある。
クロージャ:関数を入れ子にした内側のもの。内から外のアクセスは可能、逆は不可能となる。
コールバック関数:ECMAでは非定義(IE不可)。Arrayメソッドが利用する関数。(Filter,forEach,every,map,some)


昨今のAjaxライブラリは関数リテラルの理解が重要ということ。
jQueryは難解と聞いているので、本書の後にprototypeを読むことにする。
なお、Vimperatorは読んだが理解できなかった。難易度は高い方と聞いているが、近いうちに読破したい。