JS中的6種打斷點(diǎn)的方式實(shí)例總結(jié)
前言
Debugger 是前端開發(fā)很重要的一個(gè)工具,它可以在我們關(guān)心的代碼處斷住,通過單步運(yùn)行來理清邏輯。而 Debugger 用的好壞與斷點(diǎn)打得好壞有直接的關(guān)系。
Chrome Devtools 和 VSCode 都提供了 Debugger,它們支持的打斷點(diǎn)的方式有 6 種。
普通斷點(diǎn)
在想斷住的那一行左側(cè)單擊一下就可以添加一個(gè)斷點(diǎn),運(yùn)行到該處就會(huì)斷住。

這是最基礎(chǔ)的斷點(diǎn)方式,VSCode 和 Chrome Devtools 都支持這種斷點(diǎn)。
條件斷點(diǎn)
右鍵單擊代碼所在的行左側(cè),會(huì)出現(xiàn)一個(gè)下拉框,可以添加一個(gè)條件斷點(diǎn)。

輸入條件表達(dá)式,當(dāng)運(yùn)行到這一行代碼并且表達(dá)式的值為真時(shí)就會(huì)斷住,這比普通斷點(diǎn)靈活些。

這種根據(jù)條件來斷住的斷點(diǎn) VSCode 和 Chrome Devtools 也都支持。

DOM 斷點(diǎn)
在 Chrome Devtools 的 Elements 面板的對(duì)應(yīng)元素上右鍵,選擇 break on,可以添加一個(gè) dom 斷點(diǎn),也就是當(dāng)子樹有變動(dòng)、屬性有變動(dòng)、節(jié)點(diǎn)移除這三種情況的時(shí)候會(huì)斷住??梢杂脕碚{(diào)試導(dǎo)致 dom 變化的代碼。


因?yàn)槭巧婕暗?DOM 的調(diào)試,只有 Chrome Devtools 支持這種斷點(diǎn)。
URL 斷點(diǎn)
在 Chrome Devtools 的 Sources 面板可以添加 XHR 的 url 斷點(diǎn),當(dāng) ajax 請(qǐng)求對(duì)應(yīng) url 時(shí)就會(huì)斷住,可以用來調(diào)試請(qǐng)求相關(guān)的代碼。

這個(gè)功能只有 Chrome Devtools 有。
Event Listener 斷點(diǎn)
在 Chrome Devtools 的 Sources 面板還可以添加 Event Listener 的斷點(diǎn),指定當(dāng)發(fā)生什么事件時(shí)斷住,可以用來調(diào)試事件相關(guān)代碼。

這個(gè)功能也是只有 Chrome Devtools 有。
異常斷點(diǎn)
在 VSCode 的 Debugger 面板勾選 Uncaught Exceptions 和 Caught Exceptions 可以添加異常斷點(diǎn),在拋出異常未被捕獲或者被捕獲時(shí)斷柱。用來調(diào)試一些發(fā)生異常的代碼時(shí)很有用。

總結(jié)
Debugger 打斷點(diǎn)的方式除了直接在對(duì)應(yīng)代碼行單擊的普通斷點(diǎn)以外,還有很多根據(jù)不同的情況來添加斷點(diǎn)的方式。
一共有六種:
- 普通斷點(diǎn):運(yùn)行到該處就斷住
- 條件斷點(diǎn):運(yùn)行到該處且表達(dá)式為真就斷住,比普通斷點(diǎn)更靈活
- DOM 斷點(diǎn):DOM 的子樹變動(dòng)、屬性變動(dòng)、節(jié)點(diǎn)刪除時(shí)斷住,可以用來調(diào)試引起 DOM 變化的代碼
- URL 斷點(diǎn):URL 匹配某個(gè)模式的時(shí)候斷住,可以用來調(diào)試請(qǐng)求相關(guān)代碼
- Event Listener 斷點(diǎn):觸發(fā)某個(gè)事件監(jiān)聽器的時(shí)候斷住,可以用來調(diào)試事件相關(guān)代碼
- 異常斷點(diǎn):拋出異常被捕獲或者未被捕獲的時(shí)候斷住,可以用來調(diào)試發(fā)生異常的代碼
這些打斷點(diǎn)方式大部分都是 Chrome Devtools 支持的(普通、條件、DOM、URL、Event Listener、異常),也有的是 VSCode Debugger 支持的(普通、條件、異常)。
不同情況下的代碼可以用不同的打斷點(diǎn)方式,這樣調(diào)試代碼會(huì)高效很多。
JS 的六種打斷點(diǎn)方式,你用過幾種呢?
到此這篇關(guān)于JS中的6種打斷點(diǎn)的文章就介紹到這了,更多相關(guān)JS打斷點(diǎn)的方式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript String(字符串)對(duì)象的簡單實(shí)例(推薦)
下面小編就為大家?guī)硪黄狫avaScript String(字符串)對(duì)象的簡單實(shí)例(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08
純JavaScript實(shí)現(xiàn)的完美漸變彈出層效果代碼
對(duì)于Web項(xiàng)目開發(fā)尤其是前臺(tái)UI的設(shè)計(jì)而言,用戶體驗(yàn)至關(guān)重要,因?yàn)樗苯雨P(guān)系到項(xiàng)目的成敗,簡潔,平滑,優(yōu)雅的設(shè)計(jì)永遠(yuǎn)能夠受到用戶的青睞。2010-04-04
小程序?qū)崿F(xiàn)短信登錄倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)短信登錄倒計(jì)時(shí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
基于javascript顯示當(dāng)前時(shí)間以及倒計(jì)時(shí)功能
這篇文章主要為大家詳細(xì)介紹了基于javascript顯示當(dāng)前時(shí)間以及倒計(jì)時(shí)功能的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03
JS實(shí)現(xiàn)頁面長時(shí)間不操作退出到登錄頁面的示例代碼
這篇文章主要介紹了JS實(shí)現(xiàn)頁面長時(shí)間不操作退出到登錄頁面的示例代碼,通過在head標(biāo)簽中引入jquey和頁面長時(shí)間不操作的js頁面,結(jié)合實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下2024-03-03
JS正則表達(dá)式常見函數(shù)與用法小結(jié)
這篇文章主要介紹了JS正則表達(dá)式常見函數(shù)與用法,結(jié)合實(shí)例形式分析了JS正則表達(dá)式基本功能、常見函數(shù)與相關(guān)使用技巧,需要的朋友可以參考下2020-04-04
js實(shí)現(xiàn)人才網(wǎng)站職位選擇功能的方法
這篇文章主要介紹了js實(shí)現(xiàn)人才網(wǎng)站職位選擇功能的方法,涉及javascript動(dòng)態(tài)操作頁面元素結(jié)點(diǎn)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08

