Chrome调JS

在前端开发中,JavaScript的调试是不可或缺的一部分,Google Chrome作为目前最受欢迎的浏览器之一,提供了强大且便捷的开发者工具,使得调试JavaScript代码变得更加高效和直观,本文将详细介绍如何在Chrome中进行JavaScript调试,涵盖从启用开发者工具到使用断点、Call Stack、DOM断点、Snippets以及Async调试等各个方面。
一、启用开发者工具
Chrome的开发者工具可以通过以下几种方式打开:
1、快捷键:Windows系统中按下F12键,Mac系统中按下Command+Option+I。
2、菜单栏:点击右上角的“更多工具”选项,然后选择“开发者工具”。
3、右键点击页面元素:选择“检查”,可以快速打开开发者工具并定位到当前元素的相关信息。
二、Console窗口调试JavaScript代码
打开开发者工具后,切换到Console标签页,即可输入JavaScript代码进行调试。
console.log("Hello, world!");按回车执行后,控制台会输出"Hello, world!",你也可以在此处粘贴一段代码进行调试。
三、设置断点
断点是调试过程中最常用的功能之一,它可以让代码在特定行暂停执行,方便我们检查变量值和执行流程。
方法1:在Source内容区设置断点
1、找到要调试的文件,然后在内容源代码左侧的代码标记行处点击,即可打上一个断点。
2、刷新浏览器,当页面代码运行到断点处便会暂停执行。
方法2:在js文件中设置断点
1、在js源文件中需要执行断点操作的代码前加上debugger。
2、刷新浏览器,当页面代码运行到断点处会暂停执行。
四、设置断点执行条件
有时候我们希望断点在满足某些条件时才触发,这时可以使用条件断点。
1、右键点击设置的断点,选择“Edit breakpoint...”。

2、输入执行断点的条件表达式,当表达式为true时断点调试才会生效。i > 5。
五、Call Stack调用栈
当断点执行到某一程序块处停下来后,右侧调试区的Call Stack会显示当前断点所处的方法调用栈。
1、Call Stack列表中的箭头表示当前执行的位置。
2、Scope Variables列表可以查看此时局部变量和全局变量的值。
3、如果想重新从某个调用方法处执行,可以右键选择“Restart Frame”,断点就会跳到此处开头重新执行,同时Scope中的变量值也会依据代码重新更改。
六、DOM元素设置断点
除了给JavaScript代码设置断点外,还可以给DOM元素设置断点,这在我们想监听某个元素的变化时非常有用。
1、右键点击需要监听的DOM节点,选择“Break On...”菜单项。
2、在出现的三个选择项中任选一个添加断点:子节点修改、自身属性修改、节点移除。
3、设置好断点后,当DOM元素发生变化时,代码会自动停留在修改处。
七、统一管理所有断点
我们可能会在不同的文件、不同的位置添加许多断点,这些都会显示在Source页面里的Breakpoints区域中:
Breakpoints:JavaScript代码断点
DOM Breakpoints:DOM元素断点
点击断点前面的复选框可以暂时去掉或加上该断点,点击断点可跳转到相应的程序代码处。
八、快捷键
1、快速定位文件:Ctrl + P
2、快速定位文件中成员函数:Ctrl + Shift + O
九、格式化
1. JavaScript代码格式化
为了减小体积,有时候我们发现一些JavaScript源码都是压缩之后的代码,我们可以点击下面的大括号按钮将代码转成可读格式。

2. 格式化返回的JSON数据
有时我们调试程序时需要查看服务端返回的数据内容,如果后台返回的是没有格式化的JSON数据,查看起来会异常痛苦,我们可以通过Chrome控制台的copy接口来实现JSON数据的格式化:
1、请求项的右键菜单中选择“Copy Response”拷贝响应内容。
2、命令行中先输入copy(),然后将拷贝的数据粘贴到括号中。
3、回车后copy接口便会自动将数据进行格式化,并保存到剪贴板中,我们将其粘贴到文本编辑器中就可以看到效果。
十、使用Snippets编写代码片段
在Sources页面下的Snippets栏目中,我们可以随时进行JavaScript代码的编写,运行结果会打印到控制台,代码是全局保存的,我们在任何页面,包括新建标签页,都可以查看或运行这些代码,我们不再需要为了运行一小段JavaScript代码而新建一个HTML页面。
1、点击“New Snippet”按钮,创建一个新的片段文件。
2、在代码区域输入JavaScript代码。
3、按下“Ctrl + Enter”或者点击右下方的按钮执行代码,可以看到代码执行成功且反应到当前页面上了。
十一、Async调试
Chrome调试器的Async模式是为调试异步函数所设计的一个功能,开启Async模式后,异步函数之前的调用栈都会被记录下来,而且调用栈中代码执行状态也得到了保留,这对于调试Promise等异步操作非常有用。
function cook(){
console.log('开始做饭。');
var p = new Promise(function(resolve, reject){ //做一些异步操作
setTimeout(function(){
console.log('做饭完毕!');
resolve('鸡蛋炒饭');
}, 1000);
});
return p;
}
function eat(data){
console.log('开始吃饭:' + data);
var p = new Promise(function(resolve, reject){ //做一些异步操作
setTimeout(function(){
console.log('吃饭完毕!');
resolve('用过的碗和筷子');
}, 2000);
});
return p;
}
cook().then(eat).then(function(data){
console.log(data);
});在这个例子中,通过Async模式可以更好地理解异步代码的执行流程。
十二、常见问题与解答(FAQs)
Q1: 如何在Chrome中快速找到DOM元素?
A1: 使用快捷键Ctrl + F打开查找框,输入CSS选择器或XPath表达式来快速定位DOM元素,可以在Elements标签页中使用“.”(点)按钮高亮显示选中的元素。
Q2: 如何在不同设备上测试网页?
A2: Chrome开发者工具提供了设备仿真功能,在开发者工具顶部有一个下拉菜单,可以选择不同的设备类型和屏幕尺寸进行仿真测试,还可以使用“Show Emulation View”来模拟不同的网络速度和地理位置。
小伙伴们,上文介绍了“chrome调js”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。