sha*_*ias 2 javascript arrays for-loop
给出以下代码:
var tmp = [0];
for(var i=0;i<100;i++) {
tmp[0] = i;
console.log(tmp);
}
Run Code Online (Sandbox Code Playgroud)
我期望输出[0],[1],[2],[3]等
但我改为[99],[99],[99],[99]等
然而,逐步调试调试器(firebug)中的代码会让我知道[0],[1],[2]的正确结果.
console.log(tmp[0])
Run Code Online (Sandbox Code Playgroud)
当您放入console.log(tmp)时,您将记录整个数组对象.Firebug只创建一个指向该对象的链接,然后当您"查看"firebug中的对象时,您正在查看其当前状态(在for循环完成之后).