我运行了以下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浏览器控制台上进行了测试。
答案 0 :(得分:2)
function xyz(){
var a=[];
console.log(a);
for(var i=0;i<10;i++){
a.push(i);
}
}
xyz();
当我们在chrome控制台中看到它时,它有一个空数组,但是当我们展开它时,它也在显示具有length属性的数组值。
您需要在那里密切注意,其中有一个i
(信息)说,它现在就被评估。
这意味着chrome控制台会获得对该数组的实时引用,并显示length
的{{1}}属性等于0的空白数组,但还会向该数组添加实时引用,因此在扩展时我们看到了数组
代码中的数组更新后,您需要使用console.log()
才能正常工作。
console.log()