このスニペットでは、グローバル変数 'a' が 5 と評価されることに驚きはありません。
http://jsfiddle.net/MeiJsVa23/gZSxY/ :
var a = 10;
function func(){
a = 5;
}
func(); // expect global variable 'a' to be modified to 5;
alert(a); // and this prints out 5 as expected. No surprise here.
しかし、このコード スニペットでは、グローバル変数 'a' が 5 ではなく 10 と評価されるのはなぜでしょうか? それはあたかもa = 5
決して起こらなかったかのようです。
http://jsfiddle.net/MeiJsVa23/2WZ7w/ :
var a = 10;
function func(){
a = 5;
var a = 23;
}
func(); // expect global variable 'a' to be modified to 5;
alert(a); // but this prints out 10!! why?
</p>