成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

JavaScript指定斷點操作實例教程

前言

我們提供的服務有:做網站、成都網站制作、微信公眾號開發(fā)、網站優(yōu)化、網站認證、績溪ssl等。為1000多家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的績溪網站制作公司

雖然網上已經有多的數不清的調試教程了,但仍然沒有發(fā)現哪篇文章寫的通俗易懂,索性自己嘗試寫寫自己的一些使用習慣或者說是心得,希望對那些還不是很懂得使用斷點調試的孩子有一些幫助

本文將給大家詳細介紹關于JavaScript指定斷點操作的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧

什么是斷點操作(Breakpoint action)

做前端開發(fā)的小伙伴,或許對這個斷點操作不是很熟悉。不過你要是問其他語言(比如C,C++ ,C #等)的開發(fā)者,他們應該都挺熟悉斷點操作,這種斷點操作在諸如XCode或者Visual Studio的IDE中都會有提供。

以下一段話來自知乎

斷點操作 (Action) 的意義是設置追蹤點 (Tracepoint)。追蹤點相當于是一種臨時的有 Trace 功能的斷點,它會把消息 打印到 Output 窗口。

JavaScript指定斷點操作實例教程

Breakpoint Action

勾選后面的繼續(xù)執(zhí)行 (Continue Execution),代表 Tracepoint 命中時,Debugger 不會停下來,否則將會在此處停下來。兩種情況下,消息都會打印出來。

JavaScript說:我需要斷點操作

試想一個這樣的場景,我希望程序在運行的時候,可以觀察某一行上某個變量或者表達式的值。你一定會說,這不是很簡單嘛:

  • 在指定的位置放置debugger語句,或這個在此處打一個斷點,然后使用console或者變量監(jiān)聽來觀察變量的值。
  • 動態(tài)插入console.log代碼。

看起來,第二種方式是更好的一種方式。動態(tài)插入代碼當然可以使用chrome的live edit功能。當時我們希望有一個不直接修改代碼的方式。此時你或許會想,那就設置一個斷點操作吧。

JavaScript如何設置斷點操作

前端的童鞋們一定知道,JavaScript的調試大部分都是在瀏覽器里面操作的,而這個瀏覽器,大部分時候是Chrome。因為Chrome的調試功能強大而方便。(相信你不會反對吧)。
然而讓大家失望的是,chrome根本就沒有設置斷點操作的功能啊,自然其他瀏覽器也沒有。相信你此時的心情是這樣的:

沒T你說個XX。

看官們不要著急,且聽我們慢慢道來。在Chrome斷點調試的時候,可以使用條件斷點,所謂條件斷點,指定一個條件,在符合這個條件的時候。執(zhí)行會停止在斷點處,否則執(zhí)行直接往下執(zhí)行。如下圖,在Line Number的地方點擊右鍵,選中 Add conditionnal breakpoint

JavaScript指定斷點操作實例教程
條件斷點

然后,輸入條件,比如params.value == 'value'這樣的條件表達式,如下圖:

JavaScript指定斷點操作實例教程

斷點條件

有關條件斷點說明,如果你仍然不是很熟悉的話,可以自己多參考相關資料。

但是,這個斷點操作有什么關系呢?要知道,JavaScript是一門動態(tài)語言。條件判斷其實是可以輸入任何代碼片段的。比如下面的代碼:

if(express)

即便是express不是一個bool值或者bool值的表達式或者返回bool的函數,都是可以的。這就方便我們的操作。

JavaScript說道 : 我最機智。

JavaScript指定斷點操作實例教程

不要臉的JavaScript

因此在條件斷點的條件輸入框中,我們可以輸入我們想執(zhí)行的斷點操作即可以,比如console.log。如圖所示

JavaScript指定斷點操作實例教程

斷點操作

最終會在控制臺打印出來你要查看的值,如圖所示:

JavaScript指定斷點操作實例教程
打印結果

由于console.log返回值是undefined的(最終轉換為false),所以代碼并不會被停止在此處,而是會直接往下執(zhí)行,這相當于前面講述斷點操作概念的繼續(xù)執(zhí)行。如果需要停止在這兒,可以設置如下的表達式即可:

JavaScript指定斷點操作實例教程

斷點操作 中斷執(zhí)行

結語

條件斷點的設計并不是為此而設計的。所以這是一種hack,不是標準方式,不是本來的設計方式。但是,不是很多Web開發(fā)都會使用hack的嗎。 用起來方便就行。

通過這種方式,相當于可以不用修改代碼,臨時性的加入我們想執(zhí)行的代碼片段。

很多同學都喜歡在工程中直接使用console.log,這樣在實際發(fā)布的時候,最終有需要刪除這些console.log代碼,增加了工作量。通過這種方式,或許可以減少原本產品代碼中的consle.log。

使用這種方式,還可以動態(tài)改變一些變量的值。我們知道有時候,某些bug只在某些特定的值才能復現,這些值可能是服務端推送過來的,此時調試的值,就可能依賴于后端傳遞的值。其實可以在前端的頁面,通過這種方式,強制改變某些值,使得bug復現,而不依賴于后臺的值。比如:

JavaScript指定斷點操作實例教程

修改變量

參考

  • https://www.jb51.net/article/147623.htm
  • https://www.visualmicro.com/page/User-Guide.aspx?doc=Working-With-Breakpoints-When-Hit.html

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯的支持。

網頁題目:JavaScript指定斷點操作實例教程
當前URL:http://jinyejixie.com/article36/jdojsg.html

成都網站建設公司_創(chuàng)新互聯,為您提供網頁設計公司、自適應網站網站排名、用戶體驗品牌網站設計、微信小程序

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

綿陽服務器托管
台山市| 竹山县| 通山县| 灌阳县| 泰安市| 高陵县| 观塘区| 金川县| 天峻县| 莫力| 乐清市| 仙居县| 鹤庆县| 文水县| 灵丘县| 宣城市| 嫩江县| 哈尔滨市| 绍兴市| 新巴尔虎左旗| 乌鲁木齐市| 上犹县| 方正县| 英超| 延边| 慈利县| 靖江市| 清涧县| 孟州市| 林芝县| 泰州市| 湘乡市| 凤山市| 湖口县| 云龙县| 土默特左旗| 米泉市| 阿巴嘎旗| 金昌市| 察哈| 务川|