js代码调试原理(代码调试的主要调试方法)

http://www.itjxue.com  2023-01-28 15:07  来源:未知  点击次数: 

有哪些 JS 调试技巧?

其实当你经验足够的时候,有些错误不需要调试就能想明白。当然,新手而言,从调试做起。

主要的技巧取决于你使用的调试工具,这里以我使用的chrome为例。首先跳出chrome的调试工具,右键选择检查。。

接着弹出开发者窗口,如图

这个就是调试页面了,然后单击顶头的source,找到你的js脚本,如图:

图片中那个蓝色的小框框就是断点了,设置方法就是单击那里。

可以见到,窗口下面红色鲜红的值就是错误了,单击后面的错误位置就能定位了(语法错误能显示定位,但是逻辑错误无法定位。内置api出错定位会出错,比如JSON.parse()出错就定位到html文件去了)

左下角有一个蓝色小箭头,后面是能输入的,输入一下试试,

我输入了cookie,就返回了cookie的值。其他的同理。

另外也可以在js脚本里面使用console.log(),在console一栏会显示的。更多的方法,尝试才知道。

如何调试JS?

目前,常用的浏览器IE、Chrome、Firefox都有相应的脚本调试功能。我们先来看IE的:

1、在F12开发人员工具中进行调试

打开IE浏览器,按下F12键,就会打开开发人员工具,这是IE内置的开发人员开发工具,方便开发人员对HTML、CSS、Javascript等网页资源进行跟踪调试使用的。

如果你打开的时候没有固定在网页底部,可以点击右上角菜单栏中的按钮来完成。

我们看到在这个工具窗口里面有几个标签页,分别是:HTML、CSS、控制台、脚本、探查器和网络,点开每一个标签,可以执行相应的任务。

在HTML标签窗口中,工具栏中的按钮所执行的操作如下图:

CSS标签是用来查看样式的;控制台显示网页中JS的各种输出信息,包括错误信息、用户日志等;打开脚本标签页,这里面才是我们想要的内容。

我在图中用黄色矩形选中连个控件,左侧的下拉列表用来选择文件,右侧的按钮用来启动调试。当点击启动调试后,调试程序会将窗口最大化,我们在选中的文件中找到需要调试的位置,点击左侧边栏添加断点即可进行调试。

当有程序运行到我们的断点处时,就可以进行调试了:

在这里,我们可以使用快捷键进行操作,常用的快捷键如下:

F9:添加/移除 断点

F10:逐过程,即跳过该语句中的方法、表达式等

F11:逐语句调试,即单步调试,会跳入方法、表达式,进行逐语句的跟踪调试

在执行过程中,如果我们要执行即时的代码,我们就需要在右侧的窗格中输入代码,按回车即可:

如果要执行多行代码,点击运行按钮右侧的双箭头,就会打开多行模式。我就不再截图片了。

这种直接在浏览器中调试的方法同样适用于Google浏览器Chrome和FireFox FireDebug,只不过在细枝末叶上面有些不同罢了,主体的功能都是一样的。

按F12键进入开发者工具,可以查看源代码、样式和js:

点击Scripts按钮,可以打开这个调试窗口,里面包含了网页中脚本文件源码,点击左侧的按钮可以打开选择文件的侧窗口。

2、使用debugger关键字进行调试

这种方法很简单,我们只需要在进行调试的地方加入debugger关键字,然后当浏览器运行到这个关键字的时候,就会中断:

设置以后就可以使用debugger关键字进行调试了;进过这样的设置,我们还可以捕获到意外的错误,进行跟踪调试。

有哪些 JS 调试技巧

我一直使用printf调试程序,一般来说都是比较顺利,但有时候,你会发现需要更好的方法。下面几个JavaScript技巧相信你一定会觉得十分有用

1. debugger;

我以前也说过,你可以在JavaScript代码中加入一句debugger;来手工造成一个断点效果。

需要带有条件的断点吗?你只需要用if语句包围它:

复制代码

代码如下:

if (somethingHappens) {

debugger;

}

但要记住在程序发布前删掉它们。

2. 设置在DOM node发生变化时触发断点

有时候你会发现DOM不受你的控制,自己会发生一些奇怪的变化,让你很难找出问题的根源。

谷歌浏览器的开发工具里有一个超级好用的功能,专门可以对付这种情况,叫做“Break

on…”,你在DOM节点上右键,就能看到这个菜单项。

断点的触发条件可以设置成这个节点被删除、节点的属性有任何变化,或它的某个子节点有变化发生。

3. Ajax

断点

XHR断点,或Ajax断点,就像它们的名字一样,可以让我们设置一个断点,在特点的Ajax调用发生时触发它们。

当你在调试Web应用的网络传输时,这一招非常的有效。

4.

移动设备模拟环境

谷歌浏览器里有一些非常有趣的模拟移动设备的工具,帮助我们调试程序在移动设备里的运行情况。

找到它的方法是:按F12,调出开发者工具,然后按ESC键(当前tab不能是Console),你就会看到第二层调试窗口出现,里面的Emulation标签页里有各种模拟设备可选。

当然,这不会就变成了真正的iPhone,只是模拟了iPhone的尺寸,触摸事件和浏览器User Agent值。

5. 使用Audits改进你的网站

YSlow是一个非常棒的工具。谷歌浏览器的开发者工具里也有一个非常类似的工具,叫Audits。

它可快速的审计你的网站,给你提出非常实际有效的优化你的网站的建议和方法。

js 压缩后的代码如何调试?

我想你问的是不是类似UglifyJS之类的混淆过的JS代码?这种压缩通常会把变量、函数名之类的改成非常短的名称,因此这种压缩过的代码就难以识别了。

对于这种代码,推荐的思路是先看浏览器中是否有报错,然后根据错误来判断自己原始代码里可能出错的位置;如果没有报错,那也是断定大概的位置,然后Chrome里打开开发者工具里的Sources,打开自己的代码,用这个地方可以对代码进行重新排版:

当然,如果是uglify过的代码还是很难看,只能根据自己实际代码里的一些常量内容作为关键词在浏览器的代码里面搜自己可能的位置,然后加断点推测去调试。

上面的办法,都是在你对压缩JS这个过程没有控制的情况下,如果是你自己压缩JS代码,可以在压缩的时候同时生成sourcemap文件,一般是xxx.js.map文件。如果连同这个文件一起部署,那么在开发者工具中打开的时候,也可以看到最原始的代码了。这是最推荐的办法,调试起来也是最轻松的。

(责任编辑:IT教学网)

更多

推荐人物新闻文章