js断点调试经验分享

  

我们给大家详细分析了一下在JS调试的时候经常用到的断点调试,并把经验和技巧做了总结,以下是全部内容:

  

1。断点调试是啥?难不难吗?

  

断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开找来源到js文件,在行号上点一下罢了。操作起来似乎很简单,其实很多人纠结的是,是在哪里打断点?(我们先看一个断点截的图,以铬浏览器的断点为例)

  

 js断点调试经验分享

  

步骤记住没?

  

用chrome浏览器打开页面→按f12打开开发者工具→打开源→打开你要调试的js代码文件→在行号上单击一下,好的!恭喜你的处女断点打上了,哈哈~ ~

  

2。断点怎么打才合适?

  

打断点操作很简单,核心的问题在于,断点怎么打才能够排查出代码的问题所在呢?下面我继续举个例子方便大家理解,废话不多说,上图:

  

 js断点调试经验分享

  

假设我们现在正在实现一个加载更多的功能,如上图,但是现在加载更多功能出现了问题,点击以后数据没有加载出来,这时候我们第一时间想到的应该是啥?(换一行写答案,大家可以看看自己的第一反应是啥)

  

我最先想到的是,我点击到底有没有成功?点击事件里的方法有没有运行吗?好,要想知道这个问题的答案,我们立马去打个断点试试看,断点打在哪?自己先琢磨一下。

  

接着上图:

  

 js断点调试经验分享

  

各位想到没?没错,既然想知道点击是否成功,我们当然是在代码中的点击事件处添加一个断点,切记不要添加在226行哦,因为被执行的是点击方法内的函数,而不是226行的选择器。断点现在已经打上了,然后做什么呢?自己再琢磨琢磨~

  

继续上图:

  

 js断点调试经验分享

  

然后我们当然是回去点击加载更多按钮啦,为什么?额…如果你这么问,请允许我用这个表情,不点击加载更多按钮,怎么去触发点击事件?不触发点击事件,怎么去执行点击事件里的函数?咆哮状. .不过我相信大家肯定不会问这么低的问题~不瞎扯了~

  

继续正题,上面的图就是点击加载更多按钮后的情况,我们可以看到左侧的页面被一个半透明的层给盖住了,页面上方还有一串英文和两个按钮,右侧代码227行被添加上了背景色,出现这个情况,先不管那些按钮英文是啥意思有啥作用,你从这个图得到了什么信息?继续琢磨琢磨~

  

如果出现了上图这个情况,说明一点,单击事件中的函数被调用了,进一步说明了点击事件生效。那么我们对于这个问题产生的第一个“犯罪嫌疑人”就被排除了。

  

补充一下:

  

如果没有出现上面的情况咋办?那是不是说明点击事件没有生效呢?那是什么导致点击事件没有生效?大家自己思考思考~

  

可能导致点击事件没生效的原因很多,比多选择器错误,语法错误,被选择的元素是后生成的等。怎么解决呢?

  

选择器错误,大家可以继续往后看到控制台部分的内容,我想大家就知道怎么处理了

  

语法错误,细心排查一下,不熟悉的语法可以百度对比一下

  

被选择的元素是后生成的,最简单的处理就是使用。()方法去处理,这个东东带有事件委托处理,详情可以自行百度。

  

那么接下来“犯罪嫌疑人”的身份锁定在哪里呢?

  

我们将目光投向事件内部,单击事件触发了,那么接下来的问题就是它内部的函数问题了。如果你要问为什么?请给我一块豆腐…

  

打个比方,给你一支笔,让你写的字,然后你在纸上写了一个字,发现字没出来,为啥?你说我写了呀,纸上都还有划痕。那是不是可能笔没有墨水或者笔尖坏了了?这个例子和点击加载更多一个道理,写字这个动作就是点击操作,而内部函数就是墨水或者笔尖。明白了不~

  

接着我们分析下点击事件里面的内容,里面包含三句话,第一句话是变量我自增长,第二句话是给按钮添加一个我标签,第三句话是调用请求数据的方法。

  

就通过这三句话的本身作用,我们可以将较大一部分嫌疑放在第三句话,一小部分放在第一句和第二句话上,有人可能会疑惑,第二句话怎么会有嫌疑呢?他的作用只不过是添加一个标签,对于数据完全没有影响啊,确实,这句话对于数据没有影响,但是出于严谨考虑,它仍然有可能出错,例如它要是少了一个分号呢?或者句子内部某个符号错误呢?往往就是这种小问题浪费我们很多时间。

js断点调试经验分享