ctrl + shift + Dctrl + [ 向左, ctrl + ] 向右ctrl + shift + Mctrl + shift + Cctrl + shift + Pctrl + shift + P 打开命令面板,搜索 screen 可进行各类截图,包括节点截图、区域截图和全屏截图
copy():拷贝数据store as global variable:拷贝一份独立的数据并作为全局变量save as...:保存报错的堆栈信息作为 log 文件,而不是单纯的截图如果经常需要在控制台中调用某段代码块,可以考虑把它保存起来以便复用。source --> snippets --> + New snippet 新建代码块并保存。这不会随着缓存清除而消失。
$0 是对当前选中节点的引用,$1 是相对于 $0 的上一个被选中节点,以此类推,$2 到 $4 同理。$(...):这里注意和 jquery 中的 $(...) 是不一样的。例如,jq 中的 $('div') 可以选中所有 div 元素,而控制台中的 $('div') 则类似于 document.querySelector('div'),只能匹配第一个 div。$$(...):类似于 document.querySelectorAll('div'),可以匹配所有的 div。区别在于,它可以确切返回一个数组,而不是 Node list。$_:要查看上一次执行的结果,可以通过键盘上下箭头重新执行一遍代码,也可以直接 $_ 进行打印。它是对上一次执行结果的引用。右键目标元素,选择 break on 的触发条件:
subtree modifications :当前节点的子节点被 移除 或者 添加 时触发断点attribute modifications :当前节点的任意属性被 添加,移除 或者 修改 时触发断点node removal :当前节点被 移除 时触发断点console.log 的坑let person = {
name:'Jack',
job:'worker'
};
console.log(person);
person.name = 'John';
console.log(person);在使用 console.log() 打印对象的时候,需要注意它打印的是那时的快照(snapshot),所以在未展开对象的时候,打印结果符合我们的预期:

但是在展开对象后,浏览器会重新读取引用的对象本身的属性,故此时两次打印的属性都同步为最近更新的属性值:

注意这和异步同步无关。
带条件判断的 console.log() 可以用 console.assert() 来代替,它会在第一个参数为假值时,打印第二个参数的内容:

将变量名放在花括号中整体打印出来,变量与变量值的对应关系会更加清晰:

console.table() 可以以表格形式打印数组:

也可以以表格形式打印对象。这里以类数组对象为例:

当然这两者还可以结合起来,将一组变量直观地打印出来。
console.dir 可以将 dom 元素以 js 对象而不是 HTML 的形式打印出来:

还可以开启 log 的时间戳:
F12 --> ctrl+shift+P --> show timestamps
ctrl+x 等直接操作 HTML 结构
Sources —> Filesystems —> Add folder to workspace
点击样式面板中的 + 可以添加新的样式规则,新增的样式规则默认放在一个单独的 CSS 文件中,可以长按 + 决定它的书写位置。
有时候,Chrome 模拟手机调试的结果不一定准确,这时候就需要用到真机调试了。真机调试允许开发者通过 Chrome Devtools 直接调试手机上的页面,我们需要的只是在 PC 和手机上安装 Chrome 浏览器,并准备一根数据线。
首先用数据线将 PC 和手机连接起来,并打开手机的开发人员选项,接着打开 PC Chrome 的 chrome://inspect/#devices 页面:

将手机维持在浏览器页面,试着打开百度:

点击 inspect 会打开一个新窗口,在这里可以进行调试:

所有的操作会同时同步在 PC 端和手机端的页面上。
还有一种情况是调试本地文件,这时候需要使用 Port forwarding 端口转发功能。端口转发的前提是我们需要在本地开启一个服务器,对于平常写的 demo,用 live sever 插件或者 Node.js 开启一个服务器就好了。因为 Hexo 博客本身提供了本地服务器,我这里拿它示例。
首先通过命令行的 hexo s 开启本地服务器,然后配置一下端口转发的参数(我这里是 4000 端口)。记得勾选开启:

出现了绿点,说明配置没问题:

在地址栏输入端口地址,然后点击 inspect 看一下:
