浏览器奇怪的调试技巧 - 高级条件断点(二)

 使用 Function Arity

  • 在参数数上中断

仅当使用 3 个参数调用当前函数时才暂停:arguments.callee.length === 3

当您具有具有可选参数的重载函数时,这很有用。

  • Break on Function Arity 不匹配 

 仅当使用错误数量的参数调用当前函数时才暂停:(arguments.callee.length) != arguments.length

这在函数调用站点中查找错误时很有用。 

使用时间 

  • 跳过页面加载

在页面加载后 5 秒内不要暂停:performance.now() > 5000

当您想要设置断点,但只对在初始页面加载后暂停执行感兴趣时,这很有用。

  •  跳过 N 秒

如果在接下来的 5 秒内命中断点,请不要暂停执行,但之后的任何时间都可以暂停:window.baseline = window.baseline || Date.now(), (Date.now() - window.baseline) > 5000

随时从控制台重置计数器:window.baseline = Date.now()

使用 CSS 

根据计算的 CSS 值暂停,例如,仅当文档正文具有红色背景颜色时才暂停执行:window.getComputedStyle(document.body).backgroundColor === "rgb(255,0,0)" 

 仅偶数调用

仅在执行该行时每隔一次暂停:window.counter = (window.counter || 0) + 1, window.counter % 2 === 0 

Break on Sample 

仅在该行的随机执行样本上 break,例如,每 10 次执行该行中只 break 1 次:Math.random() < 0.1 

永远不要在这里暂停

当您想从 XHR 断点中免除一行、忽略正在引发的异常等时,这很有用。 

自动实例 ID 

通过在构造函数中设置此条件断点,自动为类的每个实例分配唯一 ID:(window.instances = window.instances || []).push(this)

然后要检索唯一 ID:(例如 when in a class 方法中)window.instances.indexOf(instance)window.instances.indexOf(this)

以编程方式切换 

 使用全局布尔值来限制一个或多个条件断点:

然后以编程方式切换布尔值,例如 :

  • 手动,从控制台
window.enableBreakpoints = true;
  • 从其他断点 

  • 从控制台上的计时器
setTimeout(() => (window.enableBreakpoints = true), 5000);

END.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

**之火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值