JS中的6種打斷點的方式實例總結(jié)
前言
Debugger 是前端開發(fā)很重要的一個工具,它可以在我們關(guān)心的代碼處斷住,通過單步運行來理清邏輯。而 Debugger 用的好壞與斷點打得好壞有直接的關(guān)系。
Chrome Devtools 和 VSCode 都提供了 Debugger,它們支持的打斷點的方式有 6 種。
普通斷點
在想斷住的那一行左側(cè)單擊一下就可以添加一個斷點,運行到該處就會斷住。
這是最基礎(chǔ)的斷點方式,VSCode 和 Chrome Devtools 都支持這種斷點。
條件斷點
右鍵單擊代碼所在的行左側(cè),會出現(xiàn)一個下拉框,可以添加一個條件斷點。
輸入條件表達式,當運行到這一行代碼并且表達式的值為真時就會斷住,這比普通斷點靈活些。
這種根據(jù)條件來斷住的斷點 VSCode 和 Chrome Devtools 也都支持。
DOM 斷點
在 Chrome Devtools 的 Elements 面板的對應(yīng)元素上右鍵,選擇 break on,可以添加一個 dom 斷點,也就是當子樹有變動、屬性有變動、節(jié)點移除這三種情況的時候會斷住??梢杂脕碚{(diào)試導(dǎo)致 dom 變化的代碼。
因為是涉及到 DOM 的調(diào)試,只有 Chrome Devtools 支持這種斷點。
URL 斷點
在 Chrome Devtools 的 Sources 面板可以添加 XHR 的 url 斷點,當 ajax 請求對應(yīng) url 時就會斷住,可以用來調(diào)試請求相關(guān)的代碼。
這個功能只有 Chrome Devtools 有。
Event Listener 斷點
在 Chrome Devtools 的 Sources 面板還可以添加 Event Listener 的斷點,指定當發(fā)生什么事件時斷住,可以用來調(diào)試事件相關(guān)代碼。
這個功能也是只有 Chrome Devtools 有。
異常斷點
在 VSCode 的 Debugger 面板勾選 Uncaught Exceptions 和 Caught Exceptions 可以添加異常斷點,在拋出異常未被捕獲或者被捕獲時斷柱。用來調(diào)試一些發(fā)生異常的代碼時很有用。
總結(jié)
Debugger 打斷點的方式除了直接在對應(yīng)代碼行單擊的普通斷點以外,還有很多根據(jù)不同的情況來添加斷點的方式。
一共有六種:
- 普通斷點:運行到該處就斷住
- 條件斷點:運行到該處且表達式為真就斷住,比普通斷點更靈活
- DOM 斷點:DOM 的子樹變動、屬性變動、節(jié)點刪除時斷住,可以用來調(diào)試引起 DOM 變化的代碼
- URL 斷點:URL 匹配某個模式的時候斷住,可以用來調(diào)試請求相關(guān)代碼
- Event Listener 斷點:觸發(fā)某個事件監(jiān)聽器的時候斷住,可以用來調(diào)試事件相關(guān)代碼
- 異常斷點:拋出異常被捕獲或者未被捕獲的時候斷住,可以用來調(diào)試發(fā)生異常的代碼
這些打斷點方式大部分都是 Chrome Devtools 支持的(普通、條件、DOM、URL、Event Listener、異常),也有的是 VSCode Debugger 支持的(普通、條件、異常)。
不同情況下的代碼可以用不同的打斷點方式,這樣調(diào)試代碼會高效很多。
JS 的六種打斷點方式,你用過幾種呢?
到此這篇關(guān)于JS中的6種打斷點的文章就介紹到這了,更多相關(guān)JS打斷點的方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript實現(xiàn)的元素拖動函數(shù)宿主為瀏覽器
這篇文章主要介紹了javascript實現(xiàn)的元素拖動,將相應(yīng)的元素對象的引用傳到函數(shù)中2014-07-07underscore之Collections_動力節(jié)點Java學(xué)院整理
underscore為集合類對象提供了一致的接口。集合類是指Array和Object,暫不支持Map和Set。下面通過本文給大家分享underscore之Collections的相關(guān)知識,需要的的朋友參考下吧2017-07-07JS前端知識點offset,scroll,client,冒泡,事件對象的應(yīng)用整理總結(jié)
這篇文章主要介紹了JS前端知識點offset,scroll,client,冒泡,事件對象的應(yīng)用,結(jié)合實例形式總結(jié)分析了offset,scroll,client,冒泡,事件對象相關(guān)功能、原理及操作注意事項,需要的朋友可以參考下2019-06-06javascript制作的網(wǎng)頁側(cè)邊彈出框思路及實現(xiàn)代碼
這篇文章主要介紹了javascript制作的網(wǎng)頁側(cè)邊彈出框思路及實現(xiàn)代碼,需要的朋友可以參考下2014-05-05javascript學(xué)習(xí)基礎(chǔ)筆記之DOM對象操作
javascript是一種基于對象和世界驅(qū)動,并且安全性較強的腳本語言。一個完整的javascript實現(xiàn)包括核心(ECMAScript),文檔對象模型(DOM)和瀏覽器對象模型(BOM)2011-11-11