鬼鬼JS調(diào)試工具是一款簡(jiǎn)單好用的js編程調(diào)試工具,幫助程序員更好的進(jìn)行調(diào)試,提高編程效率,需要的朋友可以免費(fèi)下載。
鬼鬼JS調(diào)試工具特色介紹
優(yōu)點(diǎn)1:完美解決某些JS代碼運(yùn)行時(shí)間過(guò)長(zhǎng)問(wèn)題
優(yōu)點(diǎn)2:完美解決一些JS新的語(yǔ)法運(yùn)行錯(cuò)誤的問(wèn)題 V8引擎完美得到和瀏覽器一樣的結(jié)果,系統(tǒng)引擎返回錯(cuò)誤
優(yōu)點(diǎn)3:完善一些浮點(diǎn)類型數(shù)據(jù)執(zhí)行返回結(jié)果不同的問(wèn)題
JS調(diào)試技巧
代碼格式化
可以將被壓縮的代碼自動(dòng)展開(kāi)
實(shí)時(shí)代碼編輯
可以在運(yùn)行時(shí)動(dòng)態(tài)改變 JS 代碼,并且不需要刷新頁(yè)面就可以看到效果,一般用這個(gè)實(shí)時(shí)的在代碼里插 console.log
DOM 事件/XHR 斷點(diǎn)
可以針對(duì) DOM 結(jié)構(gòu)改變/屬性改變/鍵盤鼠標(biāo)事件 等下斷點(diǎn),直接斷到事件的第一個(gè) listener 函數(shù)上。還可以對(duì) XHR 請(qǐng)求下斷點(diǎn),斷到發(fā)起請(qǐng)求的那一行代碼上
調(diào)用棧分析
這個(gè)非常常用,Scripts 面板下右上角的那一部分
自動(dòng)異常斷點(diǎn)
當(dāng)代碼執(zhí)行出錯(cuò)時(shí),可以自動(dòng)斷到出錯(cuò)的代碼行上,直接分析出錯(cuò)時(shí)的運(yùn)行時(shí)環(huán)境
分析 HTTP 請(qǐng)求
Network 面板下列出了所有的 HTTP 請(qǐng)求,可以很方便的查看請(qǐng)求內(nèi)容、HTTP 頭、請(qǐng)求時(shí)間等信息
以線上代碼出 Bug 為例。一般上手第一步是使用代碼格式化功能將被壓縮的線上代碼展開(kāi),然后開(kāi)啟自動(dòng)異常斷點(diǎn),嘗試重現(xiàn) Bug。當(dāng) Bug 出現(xiàn)時(shí)代碼會(huì)自動(dòng)斷到出錯(cuò)的那一行。然后通過(guò)調(diào)用棧分析結(jié)合控制臺(tái)找到最開(kāi)始出錯(cuò)的那個(gè)函數(shù)上。一般的 Bug 到這里就算找出來(lái)了,但是如果這個(gè) Bug 是在事件回調(diào)函數(shù)或者 XHR 回調(diào)函數(shù)上,就得結(jié)合 DOM 事件斷點(diǎn)和 XHR 斷點(diǎn) 進(jìn)一步往上找哪個(gè)函數(shù)出錯(cuò)。另外,如果是發(fā)給服務(wù)器請(qǐng)求沒(méi)有得到正確的 response,可以通過(guò) Network 面板查看請(qǐng)求的參數(shù)、Cookie、HTTP 頭是否有誤。
另外,還可以通過(guò) Charles/Nginx/Fiddler 等工具將遠(yuǎn)程 js 代碼映射到自己的電腦上,免去了代碼格式化的麻煩,還可以直接編輯。
還有些比較小的 Tips:
console.group/console.groupEnd 可以將 log 信息分組展示,看起來(lái)更舒服
console.warn/console.error 可以輸出 warning 和 error log
element 面板右側(cè)實(shí)時(shí)編輯的 css 樣式,可以在 resource 面板里保存起來(lái)
關(guān)于樣式還有個(gè)技巧,Elements 面板右上角的 styles 欄,右側(cè)有三個(gè)圖標(biāo),功能依次是:根據(jù)當(dāng)前元素創(chuàng)建一個(gè) css 樣式、模擬 :hover/:active 等偽類、顏色值類型選擇。實(shí)用
resource 面板可以刪除和修改 cookie/localstorage
scripts 面板下的 ctrl+o 可以快速跳轉(zhuǎn)腳本文件,ctrl+shift+o 快速跳轉(zhuǎn)函數(shù)
右下角的齒輪圖標(biāo)里有個(gè)選項(xiàng)是開(kāi)發(fā)者工具和網(wǎng)頁(yè)左右分屏(Dock to the right,默認(rèn)是上下分屏),寬屏必備
接上,還有個(gè)選項(xiàng)是禁用 Cookit,必點(diǎn)
接上,在選項(xiàng)面板里還可以手工編輯 user agent 和模擬觸摸事件
最后說(shuō)說(shuō) IE 6 的調(diào)試,我是這么個(gè)流程:
首先嘗試在 Chrome 下重現(xiàn)該 Bug,如果能重現(xiàn),就先把 Chrome 里能重現(xiàn)的 Bug 修了。確定 Chrome 里 OK,但是 IE 6 有問(wèn)題,再繼續(xù)下一步
到 IE 里首先嘗試高版本 IE,比如 IE 9。E 9 的開(kāi)發(fā)者工具還不錯(cuò),也可以下斷點(diǎn),調(diào)用棧分析、控制臺(tái)樣樣都有。如果 IE 9 里沒(méi)問(wèn)題,那就繼續(xù)嘗試 IE8,一直定位到能重現(xiàn)該問(wèn)題的最高版本的 IE 上。即使是 IE 7,其開(kāi)發(fā)者工具也還是勉強(qiáng)能用的……如果不幸的碰上一個(gè) IE 6 only 的 Bug,那就只有繼續(xù)下一步
到這一步的話一般就是最苦逼的時(shí)刻。IE 6 實(shí)在是沒(méi)有太好用的 JS 調(diào)試工具(據(jù)說(shuō) Visual Studio 可以調(diào),我沒(méi)用過(guò),歡迎補(bǔ)充)。這時(shí)候一般就是二分+alert的土法定位到出錯(cuò)行,加上耐心和時(shí)間,還有一點(diǎn)點(diǎn)運(yùn)氣。這一步的話強(qiáng)烈推薦開(kāi) Fiddler。
鬼鬼JS調(diào)試工具7.0更新日志
最新7.0版本,新增加了谷歌V8引擎解析JS。
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版