为什么即使在控制台语句之后更新了数组,console.log为什么也要打印数组?

时间:2018-06-26 06:58:08

标签: javascript html arrays google-chrome reference

我运行了以下JS代码。控制台将打印一个空数组。

function xyz(){
var a=[]; var b=[];
console.log(a);
for(i=0;i<10;i++){
b.push(i);
}
a=b;
}
 但是当我尝试运行此

function xyz(){
var a=[];
console.log(a);
for(i=0;i<10;i++){
a.push(i);
}
}

控制台从0到9打印数组。此外,我在这里看到,即使console语句在for循环的上方,我们在该循环中推送数组中的值,但控制台仍在打印,但不是在第一个情况(我认为这是因为正在打印哪个控制台的引用为空)。代码已在chrome浏览器控制台上进行了测试。

1 个答案:

答案 0 :(得分:2)

function xyz(){
   var a=[];
   console.log(a);
   for(var i=0;i<10;i++){
     a.push(i);
   }
}
xyz();

当我们在chrome控制台中看到它时,它有一个空数组,但是当我们展开它时,它也在显示具有length属性的数组值。

您需要在那里密切注意,其中有一个i(信息)说,它现在就被评估。

enter image description here

这意味着chrome控制台会获得对该数组的实时引用,并显示length的{​​{1}}属性等于0的空白数组,但还会向该数组添加实时引用,因此在扩展时我们看到了数组

代码中的数组更新后,您需要使用console.log()才能正常工作。

console.log()

相关问题