Roppongi.JS jQuery Code reading (1)に参加してみたよ

オンラインイベントなので気軽に参加できるということで、参加してみました。
主催者のid:HolyGrail反省会はこちら⇒http://d.hatena.ne.jp/HolyGrail/20080315/1205571482
JavaScriptとかjQueryとかぜんぜん分からないド素人なのでかなりKYな質問などをしてしまったかもしれません。><
いきなりしょっぱなの一行目から分かりません。

(function(){
...
})();

この書き方はGreasemonkeyなんかでよく見る書き方です。
なんのためにこんなこと書くのか分かりませんでしたが、謎が解けました。
無名関数を作って、スコープを無名関数内に限定させたいということだったのです。
JavaScriptでは

var hoge;

と宣言された変数は関数内で宣言されていれば、関数スコープ内でのみ有効な変数、グローバルスコープで宣言されればグローバルな変数として使われます。
なので、上記の(function(){...})();の{}で囲まれたなかでvarで宣言された変数はそのなかでだけ有効な変数になります。
つまりグローバルスコープの名前空間を汚染したくないという意図だったわけです。
これはJavaScriptでライブラリなどを書く場合の定石のようなものですね。きっとJavaScripterにとっては超、基本中の基本のテクニックなんだと思います。
こんな基本も分からなくてCode readingに参加するなんて無謀すぎると思ったのですが、参加者の皆さんが親切丁寧に教えてくれたのでとってもうれしかったです。みんなありがとう!!!
これに気をよくしたわたしはさらに超初心者の質問をして皆を混乱に陥れるのでした・・・


続く・・・