オライリーのJavaScriptの本読んでてスコープのところでつまった。 var scope = "global"; function f() { alert(scope); var scope = "local"; alert(scope); } f(); これをfirebugで実行すると1回目のalertで「undefined」2回目のalertで「local」が表示される。 でも、関数内でvar scopeをコメントアウトすると var scope = "global"; function f() { alert(scope); //var scope = "local"; alert(scope); } f(); 2回とも「global」が表示される。 なんで? 最初のコードの変数scopeは関数外で宣言されてるからundefinedなのはわかるけど、後のコードは関数外のグローバ