<?xml version="1.0" encoding="UTF-8" ?>
<entry
	xmlns="http://www.w3.org/2005/Atom"
	xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
	xml:lang="ja-JP"
>
	<title>デブサミ2008 13-D-7: JavaScript Tips &amp; Technique</title>
	<id>tag:txqz.net,2008-02-13:blog/2008/02/13/1852</id>
	<link rel="self" href="http://txqz.net/blog/2008/02/13/1852.atom"/>
	<link rel="alternate" type="application/rss+xml" href="http://txqz.net/blog/2008/02/13/1852.rdf"/>
	<link rel="alternate" type="application/xhtml+xml" href="http://txqz.net/blog/2008/02/13/1852.xhtml"/>
	<link rel="alternate" type="text/html" href="http://txqz.net/blog/2008/02/13/1852.html"/>
	<link rel="contents" href="http://txqz.net/blog/2008/02/13/.atom" title="2008年2月13日"/>
	<link rel="first" href="http://txqz.net/blog/2001/08/04/0001.atom" title="地球空冷化"/>
	<link rel="prev" href="http://txqz.net/blog/2008/02/13/1626.atom" title="デブサミ2008 13-D-5: 次世代ウェブフレームワークの幕開け～ステートフルはじめました/君が僕を望むなら僕は君を忘れない～"/>
	<link rel="next" href="http://txqz.net/blog/2008/02/26/2356.atom" title="僕たちの公衆送信権"/>
	<link rel="last" href="http://txqz.net/blog/2010/02/14/1221.atom" title="VIASO/K-power追悼"/>
	<author>
		<name>陽坂智佐</name>
		<email>spambasket@txqz.net</email>
	</author>
	<content type="xhtml">
		<div xmlns="http://www.w3.org/1999/xhtml">
<p><a href="http://d.hatena.ne.jp/amachang/" title="IT戦記">id:amachang</a>のターン。例のJavaScriptの歴史シートからプレゼン開始。JavaScriptは初心者向け言語であり、オブジェクト指向言語であり、プロトタイプベース言語であり、関数指向言語でもある一粒で4度おいしい言語なのだというお話。</p>
<h2>JavaScriptは初心者向け言語</h2>
<ul>
<li>すぐに始められる</li>
<li>すぐに公開できる。ツッコマレビリティが重要。PHPだとサーバが必要だけどJSだとブログでもいい</li>
<li>おもしろい</li>
<li><a href="https://addons.mozilla.org/ja/firefox/addon/1843" title="Firebug :: Firefox Add-ons">Firebug</a>とか<a href="http://www.asahi-net.or.jp/~xe4r-kmt/jsh/jsh.html" title="jsh">jsh</a>とか環境が充実</li>
</ul>
<h2>JavaScriptはオブジェクト指向言語</h2>
<p>JavaScriptのメッセージには角括弧"[]"のメッセージと丸括弧"()"のメッセージがあると考えると見通しが良くなる。</p>
<pre><code class="javascript">a = [1,2,3]
a[1] #=> 2</code></pre>
<p>ドット"."は角括弧"[]"のシンタックスシュガーである。<code class="javascript">obj.hoge = 1</code> と <code class="javascript">obj["hoge"] = 1</code> は同じ。同様に<code class="javascript">obj.fuga()</code> と <code class="javascript">obj["fuga"]()</code> は同じ。関数以外にも使えて:</p>
<pre><code class="javascript">f = function(a) {return a + 1}
f(1) #=> 2</code></pre>
<p>式は演算子以外は全て値とメッセージ、つまり[]と()でできている。変数も値とメッセージ。with文の復習をすると分かる。withされたメッセージに角括弧のメッセージを送るということ。</p>
<h2>JavaScriptはプロトタイプベース言語</h2>
<p>オブジェクトがundefinedのときにはプロトタイプの値を使う。</p>
<h2>JavaScriptは関数指向言語</h2>
<p><dfn>関数指向言語</dfn>というのはラムダ計算を使ってプログラミングをするもの。<dfn>カリー化</dfn>(1引数の関数にすること)したりできる。add(1,2) を curriedAdd(1)(2) というふうにできる。1個目の引数と2個目の引数を別のタイミングで決められるのが利点。たとえば:</p>
<pre><code class="javascript">add5 = curriedAdd(5);
add5(10); #=> 15
add5(15); #=> 20</code></pre>
<p>メモ化が重要。</p>
<h2>おすすめライブラリ</h2>
<p><a href="http://jquery.com/" title="jQuery: The Write Less, Do More, JavaScript Library">jQuery</a>と<a href="http://extjs.com/" title="Ext JS - JavaScript Library">Ext JS</a>のススメ。jQueryはやわらかいライブラリで1番人気? メソッドチェーンにこだわり。すごいのはend()メソッド。効率よく、しかも早いしきれいに書けるのがすごいところ。プラグインもたくさんあるよ! 私もjQuery大好き!</p>
<p>EXT JSは反対に固いライブラリ(大規模開発にも使える的な意味で)。3万行もあるライブラリで、GUIを作るための強力なクラス群が魅力。名前の付け方にセンスがあって、beforeがb4になっていたりする。アスペクト指向的なところもある。</p>
<pre><code class="javascript">Ext.componentMgr.create({
    xtype: window,
    width: 300, height: 200
})
win.show();</code></pre>
<p>(上のソースはプレゼンで紹介されていたソースをおぼろげに書き写したものなので正確なものでないかも)</p>
<p><a href="http://d.hatena.ne.jp/shinichitomita/" title="snippets from shinichitomita’s journal">id:shinichitomita</a>が作った<a href="http://afrous.com/" title="Afrous - Ajax-powered mash up engine for the rest of us : Top">Afrous</a>がすごいよ! きょうはIE7
の自動更新日ですね! こんにちは! などなど</p>
		</div>
	</content>
	<category term="JavaScript"/>
	<category term="デブサミ"/>
	<category term="デブサミ2008"/>
	<trackback:ping>http://txqz.net/blog/2008/02/13/1852/tb</trackback:ping>
	<published>2008-02-16T15:33:32+09:00</published>
	<updated>2008-02-16T16:12:02+09:00</updated>
	<rights>Attribution-Noncommercial-Share Alike 3.0 Unported</rights>
</entry>