<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          0202年了, Chrome DevTools 你還只會console.log嗎 ?

          共 4208字,需瀏覽 9分鐘

           ·

          2020-01-16 23:27

          前言

          Chrome 開發(fā)者工具(簡稱 DevTools)是一套 Web 開發(fā)調(diào)試工具,內(nèi)嵌于 Google Chrome 瀏覽器中。DevTools 使開發(fā)者更加深入的了解瀏覽器內(nèi)部以及他們編寫的應(yīng)用。通過使用 DevTools,可以更加高效的定位頁面布局問題,設(shè)置 JavaScript 斷點并且更好的理解代碼優(yōu)化。

          本文分享 24 個 Chrome 調(diào)試技巧和一些快捷鍵,希望能幫你進一步了解 Chrome DevTools ~

          調(diào)試技巧

          1. 控制臺中直接訪問頁面元素

          在元素面板選擇一個元素,然后在控制臺輸入 $0,就會在控制臺中得到剛才選中的元素。如果頁面中已經(jīng)包含了 jQuery,你也可以使用 $($0)來進行選擇。

          你也可以反過來,在控制臺輸出的 DOM 元素上右鍵選擇 Reveal in Elements Panel 來直接在 DOM 樹種查看。

          25481f8e5751322baeeeb0afb2585fbe.webp0

          2. 訪問最近的控制臺結(jié)果

          在控制臺輸入 $_可以獲控制臺最近一次的輸出結(jié)果。

          444c92c339c298ed0f1ae86aae8c5427.webp_

          3. 訪問最近選擇的元素和對象

          控制臺會存儲最近 5 個被選擇的元素和對象。當(dāng)你在元素面板選擇一個元素或在分析器面板選擇一個對象,記錄都會存儲在棧中。可以使用 $x來操作歷史棧,x 是從 0 開始計數(shù)的,所以 $0 表示最近選擇的元素, $4 表示最后選擇的元素。

          3fbacfdf4b31efb9519098b6ff9b739c.webp4

          4. 選擇元素


          • $() - 返回滿足指定 CSS 規(guī)則的第一個元素,此方法為 document.querySelector()的簡化。



          • $$() - 返回滿足指定 CSS 規(guī)則的所有元素,此方法為 querySelectorAll()的簡化。



          • $x() - 返回滿足指定 XPath 的所有元素。


          b70050eaa00ac9225877c68d2e414335.webpselect

          5. 使用 console.table

          該命令支持以表格的形式輸出日志信息。打印復(fù)雜信息時嘗試使用 console.table 來替代 console.log 會更加清晰。

          884492243d157ace63663b44b1a4e18d.webptable

          6. 使用 console.dir,可簡寫為 dir

          console.dir(object)/dir(object) 命令可以列出參數(shù) object 的所有對象屬性。

          a979ccdee3a5bb57092d17edb02f404b.webpdir

          7. 復(fù)制 copy

          你可以通過 copy 方法在控制臺里復(fù)制你想要的東西。

          7d917a10d802d8066892f6052aab6616.webpcopy

          8. 獲取對象鍵值 keys(object)/values(object)

          674d4c5542e9e7b4cb197ed7582811ad.webpkeys_values

          9. 函數(shù)監(jiān)聽器 monitor(function)/unmonitor(function)

          monitor(function),當(dāng)調(diào)用指定的函數(shù)時,會將一條消息記錄到控制臺,該消息指示調(diào)用時傳遞給該函數(shù)的函數(shù)名和參數(shù)。

          使用 unmonitor(函數(shù))停止對指定函數(shù)的監(jiān)視。

          7322df3ac0e176799ed529ab1c7b8343.webpmonitor

          10. 事件監(jiān)聽器 monitorEvents(object[, events])/unmonitorEvents(object[, events])

          monitorEvents(object[, events]),當(dāng)指定的對象上發(fā)生指定的事件之一時,事件對象將被記錄到控制臺。事件類型可以指定為單個事件或事件數(shù)組。

          unmonitorevent (object[, events])停止監(jiān)視指定對象和事件的事件。

          b8c24def5941b8641b2a33f15cd4aea9.webpmonitorevents

          11. 耗時監(jiān)控

          通過調(diào)用 time()可以開啟計時器。你必須傳入一個字符串參數(shù)來唯一標(biāo)記這個計時器的 ID。當(dāng)你要結(jié)束計時的時候可以調(diào)用 timeEnd(),并且傳入指定的名字。計時結(jié)束后控制臺會打印計時器的名字和具體的時間。

          cac8914595fd3c78afe34ca2c8abfda0.webptime

          12. 分析程序性能

          在 DevTools 窗口控制臺中,調(diào)用 console.profile()開啟一個 JavaScript CPU 分析器.結(jié)束分析器直接調(diào)用 console.profileEnd().

          b134353392a7b4c5fd324fec1ad266ca.webpprofile

          具體的性能分析會在分析器面板中

          a7357787475bd40d6df68a5cf43e94e3.webpprofile_1

          13. 統(tǒng)計表達式執(zhí)行次數(shù)

          count()方法用于統(tǒng)計表達式被執(zhí)行的次數(shù),它接受一個字符串參數(shù)用于標(biāo)記不同的記號。如果兩次傳入相同的字符串,該方法就會累積計數(shù)。

          0c22458487efa874390c378ca9a002a4.webpcount

          14. 清空控制臺歷史記錄

          可以通過下面的方式清空控制臺歷史:

          • 在控制臺右鍵,或者按下 Ctrl 并單擊鼠標(biāo),選擇 Clear Console。

          • 在腳本窗口輸入 clear()執(zhí)行。

          • 在 JavaScript 腳本中調(diào)用 console.clear()。

          • 使用快捷鍵 Cmd + K (Mac) Ctrl + L (Windows and Linux)。

          b29dae429e1bdc4976e7843209e22f0c.webpclear

          15. 異步操作

          async/await 使得異步操作變得更加容易和可讀。唯一的問題在于 await 需要在 async 函數(shù)中使用。Chrome DevTools 支持直接使用 await。

          b9be24a793112fd42f7f98303d05b9f8.webpawait

          16. debugger 斷點

          有時候我們需要打斷點進行單步調(diào)試,一般會選擇在瀏覽器控制臺直接打斷點,但這樣還需要先去 Sources 里面找到源碼,然后再找到需要打斷點的那行代碼,比較麻煩。

          使用 debugger 關(guān)鍵詞,我們可以直接在源碼中定義斷點,方便很多。

          4bdf2ef56c376c64000534a752056eb4.webpdebugger

          17. 截圖

          我們經(jīng)常需要截圖,Chrome DevTools 提供了 4 種截圖方式,基本覆蓋了我們的需求場景,快捷鍵 ctrl+shift+p ,打開 Command Menu,輸入 screenshot,可以看到以下 4 個選項:

          3f40df1cc6bbb97ac7b909d2e2552391.webpscreenshot

          去試試吧,很香!

          18. 切換主題

          Chrome 提供了 亮&暗 兩種主題,當(dāng)你視覺疲勞的時候,可以 switch 哦, 快捷鍵 ctrl+shift+p ,打開 Command Menu,輸入 theme ,即可選擇切換

          504cf2ecbdb65f0a3c2087b3b81d04e4.webptheme

          19. 復(fù)制 Fetch

          在 Network 標(biāo)簽下的所有的請求,都可以復(fù)制為一個完整的 Fetch 請求的代碼。

          2a5f5d21f552506d1e754f9aa43710f7.webpcopy-fetch

          20. 重寫 Overrides

          在 Chrome DevTools 上調(diào)試 css 或 JavaScript 時,修改的屬性值在重新刷新頁面時,所有的修改都會被重置。

          如果你想把修改的值保存下來,刷新頁面的時候不會被重置,那就看看下面這個特性(Overrides)吧。Overrides 默認是關(guān)閉的,需要手動開啟,開啟的步驟如下。

          開啟的操作:

          打開 Chrome DevTools 的 Sources 標(biāo)簽頁
          選擇 Overrides 子標(biāo)簽
          選擇 + Select folder for overrides,來為 Overrides 設(shè)置一個保存重寫屬性的目錄

          783deea68530071eb43ae01310ab12e9.webpoverrides

          21. 實時表達式 Live Expression

          從 chrome70 起,我們可以在控制臺上方可以放一個動態(tài)表達式,用于實時監(jiān)控它的值。Live Expression 的執(zhí)行頻率是 250 毫秒。

          點擊 "Create Live Expression" 眼睛圖標(biāo),打開動態(tài)表達式界面,輸入要監(jiān)控的表達式

          d91b1c14fe967b74871797c5352f76c3.webplive_expression

          22. 檢查動畫

          Chrome DevTools 動畫檢查器有兩個主要用途。


          • 檢查動畫。您希望慢速播放、重播或檢查動畫組的源代碼。



          • 修改動畫。您希望修改動畫組的時間、延遲、持續(xù)時間或關(guān)鍵幀偏移。當(dāng)前不支持編輯貝塞爾曲線和關(guān)鍵幀。


          動畫檢查器支持 CSS 動畫、CSS 過渡和網(wǎng)絡(luò)動畫。當(dāng)前不支持 requestAnimationFrame 動畫。

          快捷鍵 ctrl+shift+p ,打開 Command Menu,鍵入 Drawer: Show Animations。

          486b19c1255853598919e00b47168244.webpanimations

          23. 滾動到視圖區(qū)域 Scroll into view

          f4995e91c79105f5f9d4a6eb8e4ee8e3.webpscrollintoview

          24. 工作區(qū)編輯文件 Edit Files With Workspaces

          工作空間使您能夠?qū)⒃?Chrome Devtools 中進行的更改保存到計算機上相同文件的本地副本。

          進入 Sources Menu, Filesystem 下 點擊 Add folder to workspace 添加要同步的工作目錄

          3373f2397996bae4c9e0e079512f13a9.webpworkspaces快捷鍵

          訪問 DevTools

          訪問 DevToolsWindowsMac
          打開 Developer Tools (上一次停靠菜單)F12、Ctrl + Shift + ICmd + Opt + I
          打開/切換檢查元素模式和瀏覽器窗口Ctrl + Shift + CCmd + Shift + C
          打開 Developer Tools 并聚焦到控制臺Ctrl + Shift + JCmd + Opt + J

          全局鍵盤快捷鍵

          下列鍵盤快捷鍵可以在所有 DevTools 面板中使用:

          全局鍵盤快捷鍵WindowsMac
          下一個面板Ctrl + ]Cmd + ]
          上一個面板Ctrl + [Cmd + [
          更改 DevTools 停靠位置Ctrl + Shift + DCmd + Shift + D
          打開 Device ModeCtrl + Shift + MCmd + Shift + M
          切換控制臺EscEsc
          刷新頁面F5、Ctrl + RCmd + R
          刷新忽略緩存內(nèi)容的頁面Ctrl + F5、Ctrl + Shift + RCmd + Shift + R
          在當(dāng)前文件或面板中搜索文本Ctrl + FCmd + F
          在所有源中搜索文本Ctrl + Shift + FCmd + Opt + F
          按文件名搜索(除了在 Timeline 上)Ctrl + O、Ctrl + PCmd + O、Cmd + P
          放大(焦點在 DevTools 中時)Ctrl + +Cmd + Shift + +
          縮小Ctrl + -Cmd + Shift + -
          恢復(fù)默認文本大小Ctrl + 0Cmd + 0
          打開 command 菜單Ctrl + Shift + PCmd + Shift + P

          控制臺

          控制臺快捷鍵WindowsMac
          上一個命令/行向上鍵向上鍵
          下一個命令/行向下鍵向下鍵
          聚焦到控制臺Ctrl + `Ctrl + `
          清除控制臺Ctrl + LCmd + K
          多行輸入Shift + EnterShift + Enter
          執(zhí)行EnterReturn




          推薦閱讀




          我的公眾號能帶來什么價值?(文末有送書規(guī)則,一定要看)

          每個前端工程師都應(yīng)該了解的圖片知識(長文建議收藏)

          為什么現(xiàn)在面試總是面試造火箭?

          瀏覽 102
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人在线支援 | 91一区二区 | 蜜桃视频18 | 在线aaa | 欧美极品另类 |