デブサミ2008 13-D-7: JavaScript Tips & Technique

id:amachangのターン。例のJavaScriptの歴史シートからプレゼン開始。JavaScriptは初心者向け言語であり、オブジェクト指向言語であり、プロトタイプベース言語であり、関数指向言語でもある一粒で4度おいしい言語なのだというお話。

JavaScriptは初心者向け言語

JavaScriptはオブジェクト指向言語

JavaScriptのメッセージには角括弧"[]"のメッセージと丸括弧"()"のメッセージがあると考えると見通しが良くなる。

a = [1,2,3]
a[1] #=> 2

ドット"."は角括弧"[]"のシンタックスシュガーである。obj.hoge = 1obj["hoge"] = 1 は同じ。同様にobj.fuga()obj["fuga"]() は同じ。関数以外にも使えて:

f = function(a) {return a + 1}
f(1) #=> 2

式は演算子以外は全て値とメッセージ、つまり[]と()でできている。変数も値とメッセージ。with文の復習をすると分かる。withされたメッセージに角括弧のメッセージを送るということ。

JavaScriptはプロトタイプベース言語

オブジェクトがundefinedのときにはプロトタイプの値を使う。

JavaScriptは関数指向言語

関数指向言語というのはラムダ計算を使ってプログラミングをするもの。カリー化(1引数の関数にすること)したりできる。add(1,2) を curriedAdd(1)(2) というふうにできる。1個目の引数と2個目の引数を別のタイミングで決められるのが利点。たとえば:

add5 = curriedAdd(5);
add5(10); #=> 15
add5(15); #=> 20

メモ化が重要。

おすすめライブラリ

jQueryExt JSのススメ。jQueryはやわらかいライブラリで1番人気? メソッドチェーンにこだわり。すごいのはend()メソッド。効率よく、しかも早いしきれいに書けるのがすごいところ。プラグインもたくさんあるよ! 私もjQuery大好き!

EXT JSは反対に固いライブラリ(大規模開発にも使える的な意味で)。3万行もあるライブラリで、GUIを作るための強力なクラス群が魅力。名前の付け方にセンスがあって、beforeがb4になっていたりする。アスペクト指向的なところもある。

Ext.componentMgr.create({
    xtype: window,
    width: 300, height: 200
})
win.show();

(上のソースはプレゼンで紹介されていたソースをおぼろげに書き写したものなので正確なものでないかも)

id:shinichitomitaが作ったAfrousがすごいよ! きょうはIE7 の自動更新日ですね! こんにちは! などなど

タグ
© 2001-2008 Chisa YOUZAKA. Some rights reserved.