- Published on
09-Ninja console.log
- Authors
- Name
- Dendoink
- @Magiciaaaaaaaan
💡
问题 设置的断点是不是被执行了太多次? 有一个包含 150
个元素的循环,但我只想知道第 120
次循环的结果?
Conditional breakpoints
条件断点
1. let result = 0;
Array.from(Array(150)).map(Math.random).forEach((vaule, index) => {
result += v * index
})
想知道第 120
次的执行结果,除了循环到 120
次,还有别的办法吗?
- 右击行号,选择
Add conditional breakpoint...(添加条件断点)
- 或者右击一个已经设置的断点并且选择
Edit breakpoint(编辑断点)
- 然后输入一个执行结果为
true
或者false
的表达式(它的值其实不需要完全为true
或者false
尽管那个弹出框的描述是这样说的)。
在这个表达式中,你可以使用任何这段代码可以获取到的值(当前行的作用域)。
条件成立就会暂停代码的执行:

console.log
2. The ninja(忍者) 得益于条件断点, console.log
也有了新玩法:
- 每一个条件都必须经过判断 - 当应用执行到这一行的时候进行判断
- 并且如果条件返回的是
falsy
的值(这里的falsy
并非是笔误,falsy
指的是被判定为false
的值,例如undefined
),它并不会暂停..
与其在你的源码的不同地方去添加 console.log
/ console.table
/ console.time
等等,不如你直接使用条件判断来将它们“连接”到 Source
面板中。 这样它们就会一直执行,而不当不再需要它们的时候,在 Breakpoints section
点两下鼠标,就可以把所有的断点都移除,就像一堆忍者一样突然消失!

这个技术在调试生产环境的问题时同样很有用,因为你通过这样的方式轻松将
console logs
插入到source
里。
Related series
00-写在前面
March 2, 2021
01-Chrome 版本
March 2, 2021
02-复制 & 保存
March 2, 2021
03-快捷键和通用技巧
March 2, 2021
04-使用 Command
March 2, 2021
05-代码块的使用
March 2, 2021
06-console 中的 $
March 2, 2021
07-console.log 的 "bug" ?
March 2, 2021
08-异步的 console
March 2, 2021
09-Ninja console.log
March 2, 2021
10-自定义格式转换器
March 2, 2021
11-对象&方法
March 2, 2021
12-console.log 并不简单
March 2, 2021
13-打造一个终极 log
March 2, 2021
14-打印时间戳
March 2, 2021
15-直接把 `log` 作为回调函数
March 2, 2021
16-初窥 Network
March 2, 2021
17-Network 深入
March 2, 2021
18-Network 细节
March 2, 2021
19-元素面板的基本操作
March 2, 2021
20-元素面板调试技巧
March 2, 2021
21-元素面板里的编辑器
March 2, 2021
22-颜色选择器
March 2, 2021
23-Drawer 使用技巧
March 2, 2021
24-Drawer 动画调试
March 2, 2021
25-Drawer 性能优化
March 2, 2021
26-Workspace 使用技巧
March 2, 2021
27-自动美化输出
March 2, 2021
28-CSS 概览
March 2, 2021
29-Custom UI Themes
March 2, 2021
30-Source diff
March 2, 2021