javascript - 为什么谷歌浏览器控制台延迟?

标签 javascript jquery google-chrome

<分区>

Possible Duplicate:
Is Chrome’s JavaScript console lazy about evaluating arrays?

基本上我发现的是 google chrome 的开发者工具有问题。

以这个片段为例:

console.log($(this).find(' .buttons .cancel'));
$(this).find(' .buttons .cancel').remove();

当该片段被触发时,如果有两个项目匹配这些选择器,谷歌浏览器输出 [, ]。基本上它是在寻找元素,但它显示数据的速度似乎比应有的慢。

我希望能够记录我正在删除的项目,但就目前而言,我必须先在没有 .remove() 行的情况下运行它。然后在我知道它正在运行后,我可以使用 remove() 函数再次运行它。

最佳答案

考虑以下测试:

  • a={a:'a'}。它返回一个对象。
  • a.a='b'
  • 展开第一个命令的返回。它显示 a: "b"

因此,对象始终以其首次在 Chrome 开发人员控制台中打开时所处的状态显示。对于(伪)数组,重要的是当控制台到达对象时对象的状态。这可能是在正常的 javascript 返回之后(很难说出原因。也许是性能原因)。

您可以通过始终记录不会更改的元素来处理此问题,例如:

  • 原始值:console.log("hello")
  • DOM 节点或 jQuery 对象的克隆:console.log($(this).find(".buttons .cancel").clone())

如果无法记录不可变对象(immutable对象),您仍然可以在跟踪代码时进行记录:console.log(document);调试器;

关于javascript - 为什么谷歌浏览器控制台延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13444596/

相关文章:

javascript - 这个 Javascript 函数返回什么?

javascript - 按时间顺序加载div中的页面

google-chrome - Chrome 扩展无法访问自定义窗口属性

javascript - Chrome 返回字符串 "FY 2000"的有效日期而不是无效日期

javascript - FireFox 中的填充问题,但 Chrome 中没有

javascript - 第一次点击,结果不符合我的预期

javascript - 如何从数组中删除特定项目?

javascript - 在js对象中获取元素数量

javascript - 从包含字母数字的命名空间读取 JSON 时出错

javascript - 访问之前在 javascript/jquery 中绘制的图