gpt4 book ai didi

javascript - javascript 或 firefox 中的 console.dir() 是异步的吗?

转载 作者:数据小太阳 更新时间:2023-10-29 04:50:00 24 4
gpt4 key购买 nike

一个很奇怪的问题。

在我的调试中,我发现 console.dir(anArray) 没有在浏览器的 firebug 控制台上输出当前值。

例如,

console.dir(anArray)              //line 1
console.log(anArray[0].prop1) //line 2
code to change the value of anArray[0].prop1 //line 3

anArray 是 javascript/json 对象的数组,

在Firbug的控制台中,第1行输出了第3行设置的新值,

第 2 行是旧值,是我想要的。

唯一的解释是 console.dir() 是异步的,对吧?!

我的环境:Windows7, Firefox 6.0.2, firebug 1.9.1, javascript lib是DOJO(不过我觉得没关系)

谢谢。

最佳答案

console.dir 的重要之处(至少在 Chrome 中,根据我的经验和 this 判断)是 expansion 评估并显示 <对象的 strong>current 值,在您进行扩展时,而不是 console.dir() 调用时的值。

例子见

<html><body> open/refresh this with the javascript console open
<script>
var ar = new Float32Array(1);
ar[0]=2;
console.log(ar[0]);
console.dir(ar);
ar[0]=200;
</script>

当您在控制台中展开数组时,您会看到值 200。

这不应该是一个错误,它肯定是一个性能问题(对象可能非常大),但行为很奇怪,并且可能会造成混淆。

此外,我已经测试过,如果该值之后发生变化,控制台不会更新它(因此它也不能用作调试器中的“监视”窗口)。

关于javascript - javascript 或 firefox 中的 console.dir() 是异步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9682293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com