精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

前端必看!極具提效的網頁 JS 調試技巧

開發 前端
本文講解如何使用瀏覽器提供的工具進行 JS 代碼的斷點調試。

大家好,我是前端西瓜哥。本文講解如何使用瀏覽器提供的工具進行 JS 代碼的斷點調試。

debugger

在代碼中需要打斷點的地方,加上 debugger,表示一個斷點。瀏覽器代碼執行到該位置時,會停下來,進入調試模式。

示例代碼:

function a() {
let a_var = 'a';
b(a_var);
}

function b(a_var_from_a) {
debugger;
console.log(global_var);
let b_var = 'b';
c();
}

function c() {
let c_var = 'c';
}

let module_var = 'module';
var global_var = 'global';

a();

整體就是調用 a,然后 a 調用 b,b 調用 c,然后有各種作用域的變量。

記得打開開發者工具面板,沒打開的話,debugger 會靜默失敗。

下面是斷點后的樣子。

圖片

現在是 a 函數調用了 b 函數,b 函數調用的時候用 debugger 加了個斷點,于是我們就停在這里了。

此時上下文狀態和調用站會保留著,方便我們排查是什么分支導致變量狀態錯誤,比如一個錯誤的條件判斷,讓一個為 null 的變量沒能變成一個普通對象,導致訪問它的屬性報錯。

手動打斷點

在對應的行號點一下就可以了,相當于加了個 debugger 關鍵字。

圖片

刷新頁面后,手動打的斷點還會保留。

調用棧信息

首先是函數調用棧信息。

圖片

調用的起始端是一個匿名函數,沒有名字的函數都會顯示 anonymouse,這里是 script 最外層的直接調用,所以沒有名字。我本人建議多給匿名函數起個名字,可讀性會更好。但如果你有起名困難癥,不起也好。

匿名函數,然后調用了函數 a,函數 a 再調用了函數 b,然后停下了。之后還會調用 c。

看到 b 旁邊的藍色箭頭沒,它表示我們 正在觀測哪個函數的上下文,默認會選擇棧頂。

你可以用光標選擇你要觀測的函數下的變量,并且會高亮對應的代碼。

圖片

作用域

我們看看某個函數的函數作用域的上下文。

找到 Scope 這個標簽頁,目前我們可以看到有三種類型:Local、Script 和 Global。

首先是 Local,本地作用域。這里對應 b 函數的上下文,可以看到(1)傳入的變量,(2)函數內部聲明的變量,以及 (3)this 值。

然后是 Script,表示一個模塊文件的最外層變量,和全局變量不同,只能被模塊文件內的文件的代碼訪問。

最后是 Global,全局作用域。

圖片

再補充一個比較常見的閉包作用域。如果一個函數是通過閉包產生的,那在 Local 和 Script 還會有一個閉包作用域。

圖片

在函數中訪問一個變量,其實就是沿著這條鏈路去查找最先找到的那個,如果找不到就會拿到 undefined。

當然除了這些,還有不少,比如塊作用域(Block)、捕獲作用域(Catch Block)、Eval 作用域、With 塊作用域等,篇幅原因,不一一介紹了。

執行下一步

實際我們還要看看代碼是否如預期進入我們希望的分支并拿到正確的值,所以需要 讓代碼一點點執行下去,觀察狀態的變化。

瀏覽器提供了各種執行下一步代碼的方式。

圖片

我們一個個過一遍。

Resume 恢復腳本執行

首先是最左邊這個 矩形+三角形 的藍色按鈕,它表示 結束當前斷點,恢復腳本運行。

圖片

但如果往下執行,又遇到一個斷點,那又會進入調試模式。

于是在長循環的情況下,就出不來了(悲)。

圖片

這時候惱羞成怒的西瓜哥有個辦法,長按這個按鈕,然后出現一個停止按鈕,點它會 結束所有的斷點

或者更常見的做法是,只在特定判斷條件下的打斷點,比如:

todoItems.forEach(item => {
// item 不可能為 null,我們來看看發生甚么事了
if (!item) {
debugger;
}
// ...
})

Step over 跳過下一個函數

然后是跳過下一個函數。就是遇到下一個要執行的函數,就不進去了,執行完它繼續往下運行。

圖片

為什么要跳過函數?因為函數里面有很多代碼,或者里面又調用了其他函數,要走好久才能回到當前函數。

如果我們只是想看當前函數的完整邏輯,那就跳過其下的函數執行。

Step into 進入下一個函數

如果走著走著遇到一個函數,進入這個函數。

圖片

注意,瀏覽器環境自帶的 api 方法是進不去的。

Step out 跳出當前函數

如果你不想再看當前函數的執行了,想回到調用它的函數,就可以選擇這個方式。

圖片

Step 下一步

就是普通的下一步,它會嚴格遵守代碼的執行順序,比較常用。

圖片

Step into 和 Step 的區別

Step into 和 Step 在大體的表現上有些相同,遇到函數是會進入函數內部的,但在異步代碼下,行為有一些不同。

Step into 在遇到一個異步代碼的回調函數,會直接掛起并讓后面的同步代碼繼續跑,直到這個異步函數被執行,然后進入這個函數。

而 Step 則符合代碼的執行順序,先執行后面的同步代碼,然后再執行異步函數。

我們用一個實例演示一下。代碼為:

window.onclick = () => {
debugger;
setTimeout(() => {
console.log('inside');
console.log('p1', performance.now() / 1000);
}, 2000);
console.log('p2', performance.now() / 1000);
console.log('p3', performance.now() / 1000);
};

Step into 的表現:

圖片

可以看到,Step into 會等待異步函數被執行,才進入到函數內部,然后停在它的首行。

然后是 Step:

圖片

Step 遵循正常的代碼執行過程順序:先走完同步代碼,然后再進入異步代碼。

直接跳到某一行

我們可能想直接跳到中間的一連串邏輯,直接走到后面的某一行,對此我們可以手動跳轉。

具體做法是行號右鍵選擇 continue to here。

需要注意,這個地方必須是和當前位置在同一個函數下,否則會等價于執行了 Resume。

圖片

其他

關閉斷點功能

關閉斷點功能(deactivate breakpoint)。

開啟這個,斷點在打開開發者工具的條件下無效。

圖片

上一篇文章西瓜哥說了一個用定時器不斷執行 debugger 的方式,防止別人點點點看代碼是怎么執行的。但這只能防小白,我們把這個開了就無視 debugger 關鍵字了。

報錯時斷點

代碼報錯時,我們希望知道報錯那瞬間的上下文。

此時我們可以開啟這個功能,在報錯且沒有被捕獲時,瀏覽器會給你打一個斷點,然后你可以看看哪個變量出了問題。

圖片

還可以勾選這個 Pause on caught exceptions,效果是錯誤被捕獲時,打斷點:

圖片

結尾

光說不練假把式,西瓜哥建議你自己嘗試一番。

編程是一個實操性很強的學科,要自己動手調試,這樣才能更好地理解掌握。

責任編輯:姜華 來源: 前端西瓜哥
相關推薦

2017-04-25 17:15:00

2020-07-22 13:50:39

shell命令前端

2022-04-28 12:17:26

瀏覽器連字符hyphens

2023-11-22 19:10:42

前端父應用文案

2022-07-08 11:18:33

前端實踐自動化

2025-02-20 09:00:00

字符串JavaScript代碼

2015-06-29 13:44:16

前端網頁渲染技巧

2024-09-02 08:03:23

2017-10-17 11:51:59

移動端調試網頁Erdua

2021-09-23 05:57:52

Vscode JS 項目

2020-05-20 19:38:11

前端js調試工具

2023-12-27 18:15:42

組裝式生態提效開發中心

2022-10-20 08:34:09

圖像算法商品

2025-02-26 12:00:00

JavaScript代碼開發

2025-09-09 07:05:00

JavaScrip代碼開發

2025-09-28 01:22:00

AI前后端智能化

2017-12-08 11:28:58

MySQL性能調優技巧

2021-02-27 10:58:25

基礎組件React

2021-08-24 06:42:50

IDEA插件工具
點贊
收藏

51CTO技術棧公眾號

亚洲美女免费视频| 美日韩精品视频| 欧美一区二区三区精品| 公共露出暴露狂另类av| 亚洲精品无遮挡| 免费在线亚洲欧美| 日韩亚洲欧美中文在线| 在线观看免费视频黄| 电影天堂国产精品| 亚洲一区二区三区中文字幕| 久久综合九色综合久99| 国产精品国产三级欧美二区| 欧美日韩精品在线观看视频| 精品在线99| 日韩视频免费观看高清完整版 | 欧美国产精品| 亚洲人成电影网站色…| 精产国品一区二区三区| 朝桐光一区二区| 亚洲电影一区二区| 中文字幕一区二区三区在线乱码 | 97超碰青青草| 五月天激情在线| 中文字幕乱码日本亚洲一区二区| wwwxx欧美| 一区二区三区免费在线| 亚洲欧美成人| 欧美激情久久久| 欧美爱爱免费视频| 国产一区二区三区四区二区| 精品国产91乱码一区二区三区| www.夜夜爽| 精品3atv在线视频| 色综合色狠狠综合色| 97超碰在线人人| 成人免费观看视频大全| 欧美高清在线精品一区| 欧美日韩一区二区三| 少妇高潮一区二区三区99小说| 国产一区二区h| 成人黄色短视频在线观看| 正在播放亚洲精品| 另类av一区二区| 全球成人中文在线| 日操夜操天天操| 亚洲无吗在线| 国模精品视频一区二区三区| 欧美日韩大片在线观看| 欧美黄色一级视频| 欧美成人剧情片在线观看| 久久福利免费视频| 国产韩日影视精品| 成人97在线观看视频| 亚洲AV成人无码精电影在线| 欧美激情另类| 久久精品亚洲一区| 午夜精品一区二区三级视频| 久久久久久影院| 久久激情视频免费观看| 国产精品久久久久毛片| 中韩乱幕日产无线码一区| 欧美日韩免费看| 18禁免费观看网站| 老司机深夜福利在线观看| 亚洲福利视频一区| 中国丰满人妻videoshd| 亚洲最大网站| 在线观看国产91| 一区二区免费av| 成人乱码手机视频| 欧美v亚洲v综合ⅴ国产v| 亚洲精品鲁一鲁一区二区三区| 综合中文字幕| 国产丝袜精品第一页| 亚洲国产av一区| 日韩精品久久| 欧美国产日产韩国视频| 日产欧产va高清| 久久激情一区| 成人天堂噜噜噜| 内射后入在线观看一区| 久久综合狠狠综合久久综合88| 欧美重口乱码一区二区| 免费av网站在线看| 亚洲成人自拍一区| 福利在线一区二区三区| 久久久久久亚洲精品美女| 亚洲精品一区二区三区四区高清| 三叶草欧洲码在线| 成人aaaa| 国产69精品99久久久久久宅男| 成年人av网站| 国产综合色产在线精品| 久久久精彩视频| 精品视频在线一区二区| 黑人极品videos精品欧美裸| 日韩不卡一二三| aaa国产精品视频| 一区二区三欧美| 五月婷婷一区二区| 日一区二区三区| 不卡一卡2卡3卡4卡精品在| 欧美色视频免费| 亚洲精品欧美二区三区中文字幕| 成人毛片100部免费看| 中文字幕人成乱码在线观看| 91精品国模一区二区三区| 一级做a爰片毛片| 欧美xxx在线观看| 国产精品第一区| 好吊视频一区二区三区| 国产精品你懂的在线欣赏| 黄页免费在线观看视频| 伊人久久大香伊蕉在人线观看热v| 日韩高清免费在线| 久久久久性色av无码一区二区| 日韩av电影一区| 精品无码久久久久国产| 成人免费网址| 欧美精品一二三区| 亚洲精品乱码久久久久久久久久久久| 国产精品第十页| 91欧美精品成人综合在线观看| 蜜芽tv福利在线视频| 亚洲一级二级三级在线免费观看| 中文字幕 91| 精品在线手机视频| 亚洲18私人小影院| 一级黄色片网站| 久久久久99精品国产片| 国产综合av在线| 国产精品久久久久久久久久白浆| 久久久国产精品视频| 国产美女www爽爽爽| 2017欧美狠狠色| 人妻久久久一区二区三区| 国产一区一区| 美女国内精品自产拍在线播放| 成人黄色片在线观看| 国产69精品久久久久毛片| 大胆欧美人体视频| 怡红院男人的天堂| 26uuu另类欧美亚洲曰本| 国产va亚洲va在线va| 国产一区二区三区免费观看在线| 色婷婷综合成人av| 精人妻无码一区二区三区| 91亚洲精品一区二区乱码| 自拍日韩亚洲一区在线| 国产精品17p| 久久人人看视频| 人人妻人人澡人人爽精品日本| 亚洲一区二区视频在线观看| 人妻互换一二三区激情视频| 黄色亚洲大片免费在线观看| 粉嫩av一区二区三区免费观看| 天堂av中文在线| 精品久久国产97色综合| 日本在线观看中文字幕| 99国产精品国产精品毛片| 久草热视频在线观看| 亚洲人亚洲人色久| 国产精品美女在线观看| 欧美激情午夜| 精品久久久久久久人人人人传媒 | 一区二区三区成人在线视频| 被黑人猛躁10次高潮视频| 国一区二区在线观看| 国产一区福利视频| 另类专区亚洲| 日韩最新av在线| 国产成人精品一区二区无码呦| 亚洲一区视频在线| 超碰97在线资源站| 美女视频网站久久| 四虎免费在线观看视频| 成午夜精品一区二区三区软件| 欧洲日韩成人av| 天堂中文8资源在线8| 精品裸体舞一区二区三区| 51国产偷自视频区视频| 国产精品日韩精品欧美在线| 图片区乱熟图片区亚洲| 99精品视频免费| 午夜精品电影在线观看| 亚洲午夜精品| 国产精品福利在线观看网址| 黄色免费在线观看网站| 亚洲精品成a人在线观看| 中文字幕av网站| 亚洲永久免费av| 2019男人天堂| 不卡欧美aaaaa| 狠狠干狠狠操视频| 妖精视频在线观看免费| 国产一区二区三区在线观看精品 | 日本片在线观看| 日韩精品有码在线观看| 国产免费高清av| 欧美性黄网官网| 久久伊人成人网| 欧美国产成人精品| japanese在线观看| 激情都市一区二区| 美女福利视频在线| 欧美激情一区| 亚洲一区二区高清视频| 天海翼精品一区二区三区| 91网站在线看| 国产亚洲精品精品国产亚洲综合| 久久人人爽国产| 在线三级电影| 日韩中文字在线| 黄色av网站在线看| 日韩电影中文字幕| 亚洲国产精品久久久久爰性色| 欧美三级午夜理伦三级中视频| 日本天堂网在线观看| 亚洲毛片av在线| 91香蕉视频污在线观看| 久久久精品蜜桃| 亚洲观看黄色网| 国产成人免费在线观看不卡| 亚洲免费av一区| 日韩av成人高清| 最近免费中文字幕中文高清百度| 夜久久久久久| 日本在线xxx| 精品9999| 精品少妇在线视频| 激情国产一区| 国产在线播放观看| 激情久久综合| 91免费黄视频| 亚洲精品护士| 欧美一区二区中文字幕| 在线观看不卡| 日韩xxxx视频| 亚洲国产免费看| 日韩视频在线视频| 一区二区毛片| 国产又大又硬又粗| 男人的天堂亚洲在线| 成年网站在线免费观看| 亚洲女人av| 免费日韩视频在线观看| 奶水喷射视频一区| 久久久国产欧美| 美女一区二区三区在线观看| 欧美男女交配视频| 精品午夜一区二区三区在线观看| 中文字幕中文在线| 国产美女在线观看一区| 中文字幕乱妇无码av在线| 国产成人av福利| 娇妻高潮浓精白浆xxⅹ| fc2成人免费人成在线观看播放 | 国产精品第13页| 成人性生活毛片| 一区二区三区不卡在线观看| 久久久久97国产| 精品国产1区2区| 精产国品一区二区| 欧美日韩一区久久| 国产成人精品无码高潮| 亚洲国产精品一区二区久| 日韩av成人| 久久精品成人一区二区三区| 日本理论片午伦夜理片在线观看| 久久久久久中文字幕| 欧美momandson| 成人午夜一级二级三级| 开心激情综合| 日韩美女一区| 国产精品豆花视频| 国产视频一区二区三区在线播放| 久久99国产精品麻豆| 97人人模人人爽人人澡| 成熟亚洲日本毛茸茸凸凹| 谁有免费的黄色网址| 亚洲人成电影网站色mp4| 日韩黄色精品视频| 欧美日韩精品一区二区三区四区| 丰满少妇一级片| 国产一区二区三区18| 日本大片在线播放| 国产精品高潮呻吟久久av野狼| 国产精品2区| 久久天天狠狠| 欧美 日韩 国产精品免费观看| 久草青青在线观看| 国产乱码精品一区二区三| 亚洲国产无码精品| 一区二区在线观看av| www.国产毛片| 精品国产一区二区三区av性色| h视频在线观看免费| 国内精品久久久久久影视8| 99久久精品一区二区成人| 极品校花啪啪激情久久| 亚洲国产精品成人| 成人精品视频一区二区| 成人激情小说网站| 欧美另类videoxo高潮| 日韩欧美中文在线| 国内精品国产成人国产三级| 国产亚洲欧洲黄色| 91福利区在线观看| 亚洲一区二区三区xxx视频| 国产va免费精品观看精品视频| 高清无码一区二区在线观看吞精| 蜜桃av一区二区三区电影| 一女三黑人理论片在线| 一区二区三区精品视频| 一级片在线观看视频| 国产亚洲精品久久久久久| 九色porny丨入口在线| 51国偷自产一区二区三区| 欧美成人milf| 五月天婷婷激情视频| 91麻豆精东视频| 国产黄色片免费看| 精品sm在线观看| 日韩三级免费| 亚洲综合精品一区二区| 99精品一区| 自拍偷拍21p| 国产精品卡一卡二| 伊人色综合久久久| 最近2019好看的中文字幕免费| 影音成人av| 色爱区成人综合网| 日韩高清在线观看| 国产又大又粗又爽的毛片| 色综合色综合色综合| 美国成人毛片| 日韩免费精品视频| 综合国产视频| av无码精品一区二区三区| 久久九九影视网| 秋霞精品一区二区三区| 亚洲精品视频免费| 四虎成人在线| 亚洲精品永久www嫩草| 蜜桃视频一区二区| 黄色片子在线观看| 欧美一区二区久久| 毛片网站在线看| 国产精品久久亚洲7777| 在线成人国产| 中文人妻一区二区三区| 色哟哟一区二区三区| www.视频在线.com| 国产欧美在线看| 欧美99在线视频观看| 日本少妇一级片| 亚洲一线二线三线视频| 天堂中文资源在线观看| 欧洲亚洲免费视频| 青青草91久久久久久久久| 黄色一级片免费的| 亚洲自拍偷拍麻豆| 天天在线女人的天堂视频| 奇米四色中文综合久久| 欧美日韩在线二区| 亚洲av毛片在线观看| 亚洲一区二区三区精品在线| 丝袜视频国产在线播放| 国产精品久久久久久网站| 国产精品久久观看| 伊人久久一区二区三区| 色一区在线观看| 黄色网页在线免费看| 精品久久久久久亚洲| 免费看欧美美女黄的网站| 中文字幕在线观看成人| 精品亚洲一区二区三区在线播放| 国产成人免费9x9x人网站视频| 做爰高潮hd色即是空| 99精品视频在线免费观看| 在线观看色网站| 欧美精品久久久久久久免费观看| 久久久久97| 中文字幕第38页| 舔着乳尖日韩一区| 日本精品在线| 久久精品人成| 国产一区二区免费看| 天天干天天干天天| 欧美成人免费在线视频| 亚洲品质自拍| 日批视频免费看| 欧美午夜一区二区三区免费大片| 性xxxxfjsxxxxx欧美| 日韩精品电影网站| 国产成人福利片| 中文字幕精品在线观看| 97国产精品视频| 女人香蕉久久**毛片精品| 九九热免费在线|