2011年12月17日土曜日 JavaScriptの無名関数の実行 (function(){})() と (function(){}()) の違い JavaScript Advent Calendar 2011 (オレ標準コース) 17 日目、polygon_planet です。 ずっと Advent Calendar 参加してみたいなぁと思ってたんですが ネタが思いつかない日々で半分諦めてたんですが、考え過ぎな気がしてきたので 別におもしろい記事でもないし、技術的にも参考になるのか不明ですがとりあえず書... > このページを見る
JavaScriptの無名関数の実行 (function(){})() と (function(){}()) の違い | 圧縮電子精神音楽浮遊構造体
polygon-planet.blogspot.com
最終更新時間:
2011年12月17日21時48分
みんなのブックマーク 人気(3) 新着
-
むしろソースコードの読み方として
- ここまで詳しくないけど、説明してる記事あった気がするけど、思い出せない…→思い出した、これだ。http://blog.tojiru.net/s/article/197270788.html
-
どっちもあんまかわんなさそう。かっこの対応問題だけかなあ。
- めも
- 今日深い
- 無名関数って何だ…そんなレベルなので勉強しよう…
- 内部動作の確認方法が参考になる
- "(function(){})() よりも、 (function(){}()) のほうがコストが減る" "10,000,000 回ループして わずか 48 ミリ秒の違い"
- 誰かが使ってたなあと思ったらCrockford先生だった。 http://www.davidflanagan.com/2009/05/proposed-coding-1.html
- あくまでMozillaのJSインタプリタ実装。他のブラウザでは結果が違いそう。
- 『10,000,000 回ループして わずか 48 ミリ秒の違い。』大差ないだろうと思っていたが、やはりか。//しかし、よく調べたなあ。感心。
-
関数オブジェクトを括る(function(){})()より全体を括る(function(){}())の方が0.5%だけ早い、と。中間コードまで見に行くの偉い。
-
SpiderMonkeyが生成するコードを比較する
-
これはすごいなぁ。JSの実況おっかけとかしようと思わなかったw
-
ディスアセンブル初めて知った。SpiderMonkey以外ではどうなんだろ。
-
『(function(){}()) : 10437 ms.』『10,000,000 回ループして わずか 48 ミリ秒の違い』気にしなくて良いということが明確になった
- spidermonkey ディスアセンブル
- (function(){}())を使うっと。
-
面白い
- ん・・・前の方が正しいが、どちらも正しく解釈されるべきでだと思う。
- group 内部命令があるかないかの違い
-
実行上も構文通り括弧があるかないかの違いだった、と。強い処理系だと最適化で括弧の処理は消されそうな気がしないでもない。
- 前者だとグローバルな変数が渡せちゃったりするけど後者だと完全に閉じているからそれが無理とかいう話じゃないの。








