いまさらのネタにするほどのことでもないのかもしれませんが。
昨日javascriptでハマりかけてしまったので。。。
以下のtest1()を起動するとどうなるでしょう?
function test1(){
for(i=0;i<5;i++){
alert("i = " + i);
test2();
}
}
function test2(){
for(i=0;i<2;i++){
}
}
無限ループになってしまいます!
ちゃんとiの宣言を書いて、
function test1(){
var i;
for(i=0;i<5;i++){
alert("i = " + i);
test2();
}
}
…
とすれば
ちゃんとループを終了します。
var i;を書き忘れただけで…別関数内の同名の変数がグローバルスコープになってしまうんですね。。。
おそろしや。