javascriptのfor文は{}を省略出来るようです。
もしかしたらほかの構文でもそうなのかもしれないけど!
何時になったらJSわかるんだろ。。はぁ。。
ttp://subtech.g.hatena.ne.jp/cho45/20090115/1232016840
ttp://d.hatena.ne.jp/amachang/20090119/1232331329
リンクすることすら恥ずかしい。まぁ、気付きもしないだろうけどwww。
JS楽しい。
var a = ["a", "b", "c"]; for (var i = 0, len = a.length; i < len; i++) (function (item, index) { print([item, index]) })(a[i], i);
これがわからん。
IT戦記さんの例で分解してみる。
<ul> <li>hoge</li> <li>fuga</li> <li>piyo</li> </ul> <script> var list = document.getElementsByTagName('li'); var cou = 0;//カウンタ //例をめんどくさいのでカウンタのalertに変更。 for (var i = 0, len = list.length; i < len; i++) (function(node, i) { alert(cou++); })(list[i], i) //=>表示:0,1,2とダイアログ liは3つなので3回まわる。 //中身に名前をつけて外だし hoge = function(arg1,arg2) { alert(cou++); }; //hoge('dummy1','dummy2');//ちなみにこれで実行できる couをダイアログ //例はこうなる。同じ動き for (var i = 0, len = list.length; i < len; i++) hoge(list[i],i) //無名関数がないので括弧が一個消えた。 //{}がないからキモいのだ。 for (var i = 0, len = list.length; i < len; i++){hoge(list[i],i);} //わかったこと //例はfor(;;) hoge()という形式だった //for文は{}は省略可のようだ。 //{}がないからわからなかったようです。 for (var i = 0, len = list.length; i < len; i++) {(function(node, i) { alert(cou++); })(list[i], i); } //だがうつくしくないですね。最後の}を忘れそうです。 //なれないと! </script>
JS楽しい。