亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

前端中的JS使用調(diào)試技巧

 更新時間:2022年12月29日 16:09:06   投稿:yin  
掌握各種js調(diào)試技巧,在前端開發(fā)中降低開發(fā)成本,起到事半功倍的效果。譬如,快速定位問題、降低故障概率、幫助分析邏輯錯誤等等。這篇文章主要介紹了前端中的JS使用調(diào)試技巧,需要的朋友可以參考下

掌握各種js調(diào)試技巧,在前端開發(fā)中降低開發(fā)成本,起到事半功倍的效果。譬如,快速定位問題、降低故障概率、幫助分析邏輯錯誤等等。多數(shù)瀏覽器都提供了DevTools 供我們調(diào)試 JavaScript 應(yīng)用程序,并且它們的使用方式類似,只要我們學(xué)會了如何在一個瀏覽器上使用調(diào)試工具,就很容易在其他瀏覽器上使用它。

Alert調(diào)試

通過內(nèi)置于Window對象中的alert方法來調(diào)試,相信這個大家肯定都知道,可以一行一行的進行判斷,是否走到此處。alert的調(diào)試方式很原始,它會阻塞UI和javascript的執(zhí)行,必須點擊'OK'按鈕才能繼續(xù),非常低效。

Console

瀏覽器相繼推出了JS調(diào)試控制臺,支持使用類似"console.log(xxxx)"的形式,在控制臺打印調(diào)試信息,而不直接影響頁面顯示。

JS斷點調(diào)試

JS斷點調(diào)試,即是在瀏覽器開發(fā)者工具中為JS代碼添加斷點,讓JS執(zhí)行到某一特定位置停住,方便開發(fā)者對該處代碼段的分析與邏輯處理。為了能夠觀察到斷點調(diào)試的效果,我們預(yù)先隨意準備一段JS代碼:

3.1、Sources斷點

首先,測試代碼中我們通過上圖console的輸出結(jié)果可以看出代碼應(yīng)該是正常運行了,但是為什么是應(yīng)該呢?因為函數(shù)中加了一個隨機數(shù),而最終結(jié)果是否真的是正確的呢?這是毫無意義的猜想,但是假設(shè)我現(xiàn)在就是要驗證一下:函數(shù)傳入的兩個數(shù)、被加的隨機數(shù),以及最終的總和。那么該怎么操作呢?

方法一,前面講過最普通的,無論使用alert還是console,我們可以這么來驗證:

方法二,方法一的驗證過程存在很明顯的弊端就是,添加了很多冗余代碼,接下來我們看一下使用斷點進行驗證,是否更加方便,先看一個如何加斷點,以及斷點后是什么效果:

如圖,給一段代碼添加斷點的流程是"F12(Ctrl + Shift + I)打開開發(fā)工具"——"點擊Sources菜單"——"左側(cè)樹中找到相應(yīng)文件"——"點擊行號列"即完成在當(dāng)前行添加/刪除斷點操作。當(dāng)斷點添加完畢后,刷新頁面JS執(zhí)行到斷點位置停住,在Sources界面會看到當(dāng)前作用域中所有變量和值,只需對每個值進行驗證即可完成我們題設(shè)驗證要求。

那問題來了,仔細的朋友會發(fā)現(xiàn)當(dāng)我的代碼執(zhí)行到斷點的時候,顯示的變量a和b的值是已經(jīng)進行過加法運算后的,我們看不到調(diào)用sum函數(shù)時初始傳入的10和20。那么該怎么辦呢?這就要回過頭來先學(xué)習(xí)一下斷點調(diào)試的一些基礎(chǔ)知識了。我們打開Sources面板后其實會在界面中看到如下內(nèi)容,我們跟著鼠標軌跡逐一看看都是什么意思:

從左到右,各個圖標表示的功能分別為:

  • Pause/Resume script execution:暫停/恢復(fù)腳本執(zhí)行(程序執(zhí)行到下一斷點停止)。
  • Step over next function call:執(zhí)行到下一步的函數(shù)調(diào)用(跳到下一行)。
  • Step into next function call:進入當(dāng)前函數(shù)。
  • Step out of current function:跳出當(dāng)前執(zhí)行函數(shù)。
  • Deactive/Active all breakpoints:關(guān)閉/開啟所有斷點(不會取消)。
  • Pause on exceptions:異常情況自動斷點設(shè)置。

到此,斷點調(diào)試的功能鍵介紹得差不多了,接下來我們就可以一行一行去看我們的程序代碼,查看每一行執(zhí)行完畢之后,我們各個變量的變化情況了

如上,我們可以看到a、b變量從最初值,到中間加上隨機值,再到最后計算總和并輸出最終結(jié)果的整個過程,完成題設(shè)驗證要求不在話下。

其余幾個功能鍵,我們稍微改動一下我們的測試代碼,用一張gif圖來演示他們的使用方法:

這里需要注意一點,直接在代碼區(qū)打印變量值的功能是在較新版本的Chrome瀏覽器中才新增的功能,如果你還在使用較老版本的Chrome瀏覽器,可能無法直接在斷點的情況下查看變量信息,此時你可以將鼠標移動到變量名上短暫停頓則會出現(xiàn)變量值。也可以用鼠標選中變量名稱,然后右鍵"Add to watch"在Watch面板查看,此方法同樣適用于表達式。此外,你還可以在斷點情況下,切換到Console面板,直接在控制臺輸入變量名稱,回車查看變量信息。該部分比較簡單,考慮篇幅問題,不在做圖演示。

3.2、Debugger斷點

所謂的Debugger斷點,其實是我自己給它命名的,專業(yè)術(shù)語我也不知道怎么說。具體的說就是通過在代碼中添加"debugger;"語句,當(dāng)代碼執(zhí)行到該語句的時候就會自動斷點。接下去的操作就跟在Sources面板添加斷點調(diào)試幾乎一模一樣,唯一的區(qū)別在于調(diào)試完后需要刪除該語句。

既然除了設(shè)置斷點的方式不一樣,功能和Sources面板添加斷點效果一樣,那么為什么還會存在這種方式呢?我想原因應(yīng)該是這樣的:我們在開發(fā)中偶爾會遇到異步加載html片段(包含內(nèi)嵌JS代碼)的情況,而這部分JS代碼在Sources樹種無法找到,因此無法直接在開發(fā)工具中直接添加斷點,那么如果想給異步加載的腳本添加斷點,此時"debugger;"就發(fā)揮作用了。我們直接通過gif圖看看他的效果:

總結(jié)

調(diào)試,是在項目開發(fā)中非常重要的環(huán)節(jié),不僅可以幫助我們快速定位問題,還能節(jié)省我們的開發(fā)時間。熟練掌握各種調(diào)試手段,定當(dāng)為你的職業(yè)發(fā)展帶來諸多利益,但是,在如此多的調(diào)試手段中,如何選擇一個適合自己當(dāng)前應(yīng)用場景的,這需要經(jīng)驗,需要不斷嘗試積累。

到此這篇關(guān)于前端中的JS使用調(diào)試技巧的文章就介紹到這了,更多相關(guān)JS調(diào)試技巧內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論