欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

值得學(xué)習(xí)的JavaScript調(diào)試技巧分享

 更新時(shí)間:2023年06月20日 09:32:18   作者:前端蘭博  
這篇文章主要給大家介紹了一些JavaScript調(diào)試技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

引言

最近老大在cr我代碼時(shí),我就靜靜坐在他旁邊看他裝逼。他一頓斷點(diǎn)+抓包+各種騷操作給我看楞了,我沒忍住就讓他手把手教我,他就和我在一個(gè)小屋子里xxxx了幾個(gè)小時(shí),他手法太快了俺看一遍就忘了,于是乎就靠回憶和資料查找整理了哈高頻的js調(diào)試技巧,希望能幫助到各位。

一:console.dir

在打印dom節(jié)點(diǎn)時(shí),普通的console.log是純文本格式,而dir的打印是以對象的方式。因此在輸出dom節(jié)點(diǎn)時(shí),務(wù)必使用dir打印

<div id="main">
    <div class="box1">
      <p>p1</p>
    </div>
  </div>
  let oD = document.querySelector('.box1')
  console.log(oD)//普通的log輸出
  console.dir(oD)//dir輸出方式

二:二次發(fā)起請求

在調(diào)試接口時(shí),通常我們會刷新頁面然后觀察network的接口信息,如果項(xiàng)目加載時(shí)間過長,刷新頁面查看接口的效率是十分低的。

  • 對接口請求右鍵
  • 選擇Relpy xhr發(fā)送請求

三:接口請求參數(shù)修改

借助瀏覽器控制臺可以不用修改代碼就可以發(fā)送不同參數(shù)的新請求了。具體操作如下

  • 對接口請求右鍵
  • 選擇copy。
  • 再選擇copy as fetch。
  • 在console區(qū)域粘貼上面的請求信息,然后修改請求體參數(shù)。
  • 然后切換到networkl查看最新請求的結(jié)果

效果展示

四:css查看偽類hover,active樣式

在控制臺右側(cè)選擇:hov可以選擇對應(yīng)dom各種偽類狀態(tài)下的css樣式,十分的便捷

五:css樣式跳轉(zhuǎn)到對應(yīng)文件查看

選擇css樣式,按住alt點(diǎn)擊就可以跳到對應(yīng)文件查看具體代碼

六:控制臺輸出選擇的dom

首先在頁面選擇指定的位置dom,然后在在控制臺使用$0就表示當(dāng)前選中的dom了

七:展開全部dom

有時(shí)候我們在頁面查找一個(gè)dom時(shí),它嵌套層級特別深。這巨他媽蛋疼一層層展開,這個(gè)時(shí)候我們就需要找到一鍵全部展開來幫助我們解決這個(gè)問題了。

右鍵選擇expand就可以展開選擇的dom了。

八:斷點(diǎn)調(diào)試

斷點(diǎn)調(diào)試是本節(jié)最后一個(gè)內(nèi)容了,它也是最核心的內(nèi)容了,玩的6的是真的6,老大說我搞懂?dāng)帱c(diǎn)調(diào)試和對應(yīng)的堆棧上下文就可以畢業(yè)了。(畢業(yè)=辭退?還是。。。)下面我列舉的僅僅是入門級別的斷點(diǎn)調(diào)試,只是說明如何上手操作,里面許多東西還望大家多多探索。

1. 打斷點(diǎn)方式

代碼中:debugger

在需要斷點(diǎn)的地方寫入debugger,此時(shí)程序運(yùn)行后代碼就會卡在這里,等待主人的安排

let a = 10
debugger
a++

瀏覽器中:

  • 選擇sources
  • 在指定代碼行左側(cè)單擊

2. 斷點(diǎn)間調(diào)試

第一種斷點(diǎn)調(diào)試是十分常用的方式,代碼會從當(dāng)前斷點(diǎn)直接運(yùn)行到下一個(gè)斷點(diǎn)處執(zhí)行,中間經(jīng)過代碼都默認(rèn)被執(zhí)行且跳過。如下圖紅色按鈕就是斷點(diǎn)間調(diào)試。

例子演示

我們在上圖中打了3個(gè)斷點(diǎn),逐個(gè)點(diǎn)擊,首先從斷點(diǎn)15行直接跳到斷點(diǎn)17行,最后跳到19行。由于異步最后執(zhí)行,所以最后又跳到斷點(diǎn)15行結(jié)束。斷點(diǎn)經(jīng)過的地方鼠標(biāo)移動(dòng)到變量上可以查看其內(nèi)部數(shù)據(jù)。

3. 逐步調(diào)試

逐步調(diào)試很明顯就是字面意思,從當(dāng)前斷點(diǎn)位置開始一行一行的運(yùn)行代碼,稍微注意的是,遇到函數(shù)不進(jìn)入函數(shù)的內(nèi)部,而是直接執(zhí)行完函數(shù)。

例子演示

4. 進(jìn)入與進(jìn)出函數(shù)調(diào)試

逐步調(diào)試遇到函數(shù)是不進(jìn)入函數(shù)內(nèi)部的,因此需要借助進(jìn)入和進(jìn)出調(diào)試方式控制函數(shù)的訪問

例子演示

5. 逐步調(diào)試詳細(xì)版

上面講述了第一種逐步調(diào)試方式,其遇到函數(shù)是不進(jìn)入函數(shù)內(nèi)部的,而是直接執(zhí)行函數(shù)。因此下面這種方式是逐步調(diào)試的詳細(xì)版,它也是從斷點(diǎn)位置逐步的調(diào)試運(yùn)行,遇到函數(shù)也會進(jìn)入函數(shù)的內(nèi)部進(jìn)行逐步執(zhí)行。

九:React/Vue中嘗試

有吊毛說react和vue咋調(diào)試?嗯,那個(gè)吊毛其實(shí)就是我,其實(shí)也很簡單滴。

  • 在需要調(diào)試的代碼位置插入debugger
  • 在瀏覽器控制臺需要查看變量的地方插入斷點(diǎn)
  • 使用各種調(diào)試連招一頓操作就行。

代碼例子

例如下面的例子,頁面最后顯示的num是多少?最后是101,不了解批量setState的開始肯定蒙,我們調(diào)試看看

import React,{useEffect, useState} from "react";
const Home = () => {
  const [num,setNum] = useState(1)
  useEffect(()=>{
    debugger
    setNum(100)
    setTimeout(() => {
      setNum(num+100)
    }, 0);
  },[])
  return (
    <div>num:{num}</div>
  )
}
export default Home;

調(diào)試演示 根據(jù)調(diào)試發(fā)現(xiàn),進(jìn)入定時(shí)器的時(shí)候num還未更新,還是1。

到此這篇關(guān)于值得學(xué)習(xí)的JavaScript調(diào)試技巧分享的文章就介紹到這了,更多相關(guān)JavaScript調(diào)試技巧內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS制作可以選項(xiàng)卡切換的年歷

    JS制作可以選項(xiàng)卡切換的年歷

    這篇文章主要為大家分享了JS制作類似于選項(xiàng)卡切換的年歷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • js下利用控制器載入對應(yīng)腳本

    js下利用控制器載入對應(yīng)腳本

    因項(xiàng)目開發(fā)需要,須將每一個(gè)方法都獨(dú)立成單獨(dú)的js文件以便載入、維護(hù),所以,必須需要有一個(gè)控制器用于載入這些方法。
    2010-07-07
  • javascript入門基礎(chǔ)之私有變量

    javascript入門基礎(chǔ)之私有變量

    開始接觸這門語言時(shí),可能都會覺得這門語言缺少訪問控制符(如public、private、protected),從而導(dǎo)致不能定義私有變量和私有方法。但經(jīng)過進(jìn)一步了解就會知道javascript同樣可以有私有變量。
    2010-02-02
  • JavaScript導(dǎo)出CSV文件不完整的問題解決方法

    JavaScript導(dǎo)出CSV文件不完整的問題解決方法

    在JavaScript中處理CSV文件時(shí),需要特別注意一些特殊字符,例如逗號、雙引號、換行符等,這些字符可能會影響CSV文件的解析,導(dǎo)致數(shù)據(jù)錯(cuò)亂,所以本文給大家介紹了如何解決JavaScript導(dǎo)出CSV文件不完整的問題,需要的朋友可以參考下
    2024-06-06
  • 使用Javascript簡單實(shí)現(xiàn)圖片無縫滾動(dòng)

    使用Javascript簡單實(shí)現(xiàn)圖片無縫滾動(dòng)

    本文簡單介紹了使用原生javascript實(shí)現(xiàn)簡單的圖片無縫滾動(dòng)的方法,并附上示例代碼,推薦給大家,直接可以用在項(xiàng)目中的。
    2014-12-12
  • JS上傳組件FileUpload自定義模板的使用方法

    JS上傳組件FileUpload自定義模板的使用方法

    這篇文章主要為大家詳細(xì)介紹了JS上傳組件FileUpload自定義模板的使用方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • JavaScript隊(duì)列數(shù)據(jù)結(jié)構(gòu)詳解

    JavaScript隊(duì)列數(shù)據(jù)結(jié)構(gòu)詳解

    這篇文章主要介紹了JavaScript隊(duì)列數(shù)據(jù)結(jié)構(gòu)詳解,隊(duì)列是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),隊(duì)列中允許兩種基礎(chǔ)操作,也就是插入和刪除,也就是入隊(duì)和出隊(duì)
    2022-07-07
  • JavaScript實(shí)現(xiàn)美化滑塊效果

    JavaScript實(shí)現(xiàn)美化滑塊效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)美化滑塊效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • JS如何對Iframe內(nèi)外頁面進(jìn)行操作總結(jié)

    JS如何對Iframe內(nèi)外頁面進(jìn)行操作總結(jié)

    iframe標(biāo)簽是一個(gè)內(nèi)聯(lián)框架,即用來在當(dāng)前HTML頁面中嵌入另一個(gè)文檔的,且所有主流瀏覽器都支持iframe標(biāo)簽,這篇文章主要給大家介紹了關(guān)于JS如何對Iframe內(nèi)外頁面進(jìn)行操作的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • 微信小程序獲取當(dāng)前位置的詳細(xì)步驟

    微信小程序獲取當(dāng)前位置的詳細(xì)步驟

    微信小程序開發(fā)中選擇地理位置就需要通過官方文檔API去判斷用戶是否授權(quán)地理位置,用戶開啟授權(quán)后可直接獲取地理位置,下面這篇文章主要給大家介紹了關(guān)于微信小程序獲取當(dāng)前位置的詳細(xì)步驟,需要的朋友可以參考下
    2022-12-12

最新評論