最近在給前人留下的項(xiàng)目填坑袱饭。在這個(gè)過(guò)程中,我發(fā)現(xiàn)往往定位一個(gè)Bug需要很長(zhǎng)時(shí)間呛占,特別是有一些被多次調(diào)用的函數(shù)極其難以定位虑乖。在此過(guò)程中,我也學(xué)會(huì)了利用一些特殊的技巧晾虑,在這里做一下分享疹味。
Chrome Dev Tool,我的最愛(ài)
? 利用Google瀏覽器提供的開(kāi)發(fā)者工具進(jìn)行調(diào)試仅叫,一直是前端工程師的一項(xiàng)基本功。但是糙捺,仍然有些功能诫咱,以前一直不怎么用到調(diào)用棧
(Call Stack)的功能。最近發(fā)現(xiàn)洪灯,它特別的好用坎缭,特別是在弄清楚一些函數(shù)的運(yùn)行流程的時(shí)候。
? 你可以從上圖看到婴渡,當(dāng)你啟用斷點(diǎn)的時(shí)候幻锁,右側(cè)會(huì)有一個(gè)函數(shù)調(diào)用棧(Call Stack)你可以查看到函數(shù)的具體調(diào)用情況。
Console黑科技
如果你懶得打斷點(diǎn)边臼,可以在函數(shù)體內(nèi)加入以下這句:
console.log("Being called from " + arguments.callee.caller.toString());
你可以從最后打印出來(lái)的結(jié)果看到哄尔,hello
函數(shù)是被sayHello
這個(gè)函數(shù)調(diào)用了。