var arr = [];
for(var i=0; i<5; i++){
arr[i] = function(){
return i;
};
}
document.write(arr[1]());
輸出爲5,如我預期變種,循環在javascript,無法理解的輸出,錯誤
但是當我加入回報之間我+ + I;和的for循環結束時,如下面的代碼,
var arr = [];
for(var i=0; i<5; i++){
arr[i] = function(){
return i;
};
i++;
}
document.write(arr[1]());
屏幕顯示錯誤, 未捕獲的類型錯誤:常用3 [1]不是函數
我期望輸出應爲6,但我無法理解爲什麼。
因爲第一個循環'i'將會是'2'。我建議使用一些調試工具來查看你的變量,或者在你的代碼中加入一些'console.log()'來理解下一次發生的事情。 – George
由於您將索引增加2,array [0],array [2],array [4] ... – dloeda
您是否還期望'arr'中的所有函數都輸出相同的值?那將會發生。 – evolutionxbox