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

原來 Console 還可以這么玩

開發 前端
編寫包裝函數來處理日志記錄,這樣你就可以根據環境啟用/禁用調試日志,也可以使用適當的日志級別,以及應用任何格式。這也可集成到第三方日志記錄服務,只需在一個位置進行代碼更新即可

如果你以前開發過web應用程序,那么一定熟悉console.log(...),這是一種將數據打印到開發者控制臺的方法:可用于調試、日志記錄和測試。

運行console.log(console),還可以查看console對象的更多功能。

這篇文章簡要概述了可用于提升日志記錄體驗的10大技巧。

一起來看看吧。

打印表格

console.table()方法將對象/數組打印為格式整齊的表格。

console.table({
'Time Stamp': new Date().getTime(),
'OS': navigator['platform'],
'Browser': navigator['appCodeName'],
'Language': navigator['language'],
});

圖片

分組

使用console.group()可將相關的控制臺語句與可折疊章節組合在一起。

你可以選擇通過傳遞字符串作為參數來為章節指定標題。可以在控制臺中折疊和展開章節,但默認情況下也可以使用groupCollapsed取代group來折疊章節。你還可以在章節內嵌套子章節,但務必記住使用groupEnd關閉每個組。

以下示例將輸出一個打開的包含一些信息的章節。

console.group('URL Info');
console.log('Protocol', window.location.protocol);
console.log('Host', window.origin);
console.log('Path', window.location.pathname);
console.groupCollapsed('Meta Info');
console.log('Date Fetched', new Date().getTime());
console.log('OS', navigator['platform']);
console.log('Browser', navigator['appCodeName']);
console.log('Language', navigator['language']);
console.groupEnd();
console.groupEnd();

圖片

帶樣式的日志輸出

可以使用一些基本的CSS來設置日志輸出的樣式,例如顏色、字體、文本樣式和大小。

例如,嘗試運行以下命令:

console.log(
'%cHello World!',
'color: #f709bb; font-family: sans-serif; text-decoration: underline;'
);

得到輸出如下:

圖片

很酷吧?但是還可以做更多事情!

比如說改變字體,樣式,背景顏色,添加陰影和曲線......

時間

另一種常見的調試技術是計算程序執行時間,以跟蹤操作所需的時間。這可以通過使用console.time()啟動計時器并傳入標簽,然后通過相同的標簽使用console.timeEnd()結束計時器來實現。甚至還可以使用console.timeLog()在長時間運行的操作中添加標記。

console.time("concatenation");
let output = "";
for (var i = 1; i <= 1e6; i++) {
output += i;
}
console.timeEnd("concatenation");
concatenation: 1206ms - timer ended

圖片

還有一個非標準方法——console.timeStamp(),在性能選項卡中添加標記,因此可以將代碼中的點與時間軸中記錄的其他事件(如繪制和布局事件)相關聯。

斷言

如果你只想在發生錯誤或特定條件為真/假時登錄到控制臺,那么可以使用console.assert()來完成,除非第一個參數為false,否則不會將任何內容記錄到控制臺。

第一個參數是要檢查的布爾條件,后跟0或要打印的多個數據點,最后一個參數是要輸出的消息。例如console.assert(false, 'Value was false')將輸出消息,因為第一個參數是false。

const errorMsg = 'the # is not even';
for (let num = 2; num <= 5; num++) {
console.log(`the # is ${num}`);
console.assert(num % 2 === 0, { num }, errorMsg);
}

圖片

計數

還在手動遞增數字進行日志記錄嗎?console.count()可幫助用于跟蹤某些內容的執行次數,或代碼塊的輸入頻率。

你可以選擇為計數器指定一個標簽,以便管理多個計數器并使輸出更清晰。

計數器將始終從1開始。你可以隨時使用console.countReset()重置計數器,該函數也接受可選的標簽參數。

以下代碼最終值將為8。

const numbers = [1, 2, 3, 30, 69, 120, 240, 420];
numbers.forEach((name) => {
console.count();
});

下面是標記計數器的示例輸出。

圖片

如果使用值,則不會傳入標簽,而是為每個條件值提供一個單獨的計數器。例如:

console.count(NaN);         // NaN: 1
console.count(NaN+3); // NaN: 2
console.count(1/0); // Infinity: 1
console.count(String(1/0)); // Infinity: 2

堆棧跟蹤

在JavaScript中,我們經常會用到深度嵌套的方法和對象。你可以使用console.trace()遍歷堆棧跟蹤,并輸出調用了哪些方法。

圖片

還可以選擇將數據與堆棧跟蹤一起輸出。

dir

如果將大型對象記錄到控制臺,則可能會變得難以讀取。幸而我們可以通過console.dir()方法以可擴展的樹結構進行格式化。

以下是目錄樣式控制臺輸出的示例:

圖片

你還可以使用console.dirxml()以類似的方式打印基于XML或HTML的樹。

調試

你可能在應用中設置了一些日志記錄,且在開發過程中依賴這些日志記錄,但不希望用戶看到。用console.debug()替換日志語句就可以做到這一點,它的功能與console.log完全相同,但可以被大多數構建系統所刪除,或者在生產模式下運行時被禁用。

日志級別

注意到瀏覽器控制臺中有若干過濾器(信息、警告和錯誤)了嗎?它們允許你更改記錄數據的詳細程度。要使用這些過濾器,只需切換日志語句即可:

console.info() - 用于記錄通知消息,通常包括一個小的“i”和或藍色背景

console.warn() - 用于記錄警告或非嚴重錯誤信息,通常包括三角感嘆號和或黃色背景

console.error() - 用于記錄可能影響功能的錯誤信息,通常包括圓形感嘆號和或紅色背景

在生產環境中運行時,Node.js中不同的日志級別會寫入不同的流,例如error()會寫入stderr,而日志輸出會寫入stdout,但在開發中它們都會如常出現在控制臺中。

多值日志

console對象上的大多數函數接受多個參數,因此你可以添加標簽到輸出,或一次打印多個數據點,例如:console.log('User: ', user.name);

但是,打印多個標記值的更簡單方法是使用對象解構。例如,如果有三個變量(x、y和z),那么可以將它們記錄為一個用大括號括起來的對象,這樣就能輸出每個變量的名稱和值——如console.log( { x, y, z } );

圖片

日志字符串格式

如果需要輸出格式化的字符串,可以使用C語言樣式的printf格式修飾符來實現。

支持的格式修飾符有:

  • %s - 字符串或轉換為字符串的任何其他類型
  • %d / %i - 整數
  • %f - 浮點數
  • %o - 使用最佳格式
  • %O - 使用默認格式
  • %c - 使用自定義格式

例如

console.log("Hello %s, welcome to the year %d!", "Alicia", new Date().getFullYear());
// Hello Alicia, welcome to the year 2022!

當然,你也可以使用模板文字來實現相同的目的,如果是較短的字符串,可能更容易閱讀。

清除

最后,當查找事件的輸出時,你可能希望刪除頁面首次加載時記錄到控制臺的所有內容。這可以通過console.clear()來完成,它將清除所有內容,不會重置任何數據。

通常還可以通過單擊Bin圖標來清除控制臺,以及使用篩選器文本輸入進行搜索。

特殊瀏覽器方法

直接在瀏覽器控制臺中運行代碼時,還可以訪問速記方法,這些方法對于調試、自動化和測試非常有用。

其中最有用的是:

  • $() - Document.querySelector()的簡寫(選擇DOM元素,jQuery-style!)
  • $$() - 與上面相同,但selectAll用于在數組中返回多個元素時使用
  • $_ - 返回上次計算表達式的值
  • $0 - 返回最近選擇的DOM元素(在檢查器中)
  • $1...$4 - 也可用于抓取以前選擇的UI元素
  • $x() - 允許你使用Xpath查詢選擇DOM元素
  • keys()和values() - Object.getKeys()的簡寫,將返回包含obj鍵或值的數組
  • copy() - 將內容復制到剪貼板
  • monitorEvents() - 每次觸發給定事件時運行命令
  • 對于某些常見的控制臺命令(如console.table()),你不需要鍵入前面的console,只需運行table()

警告!這些只能在開發工具控制臺中工作,在代碼中不起作用!

最后再快速介紹一些最佳實踐...

  • 定義lint規則,以防止任何console.log語句合并到主分支中
  • 編寫包裝函數來處理日志記錄,這樣你就可以根據環境啟用/禁用調試日志,也可以使用適當的日志級別,以及應用任何格式。這也可集成到第三方日志記錄服務,只需在一個位置進行代碼更新即可
  • 切勿記錄任何敏感信息,任何已安裝的擴展程序都可以捕獲瀏覽器日志,因此并不安全
  • 始終使用正確的日志級別(如info、warn、error)來簡化篩選和禁用
  • 遵循一致的格式,以便在需要時可以由計算機解析日志
  • 日志消息應簡短、有意義
  • 在日志中包含上下文或類別
  • 不要過度使用,只記錄有用的信息
責任編輯:武曉燕 來源: 前端新世界
相關推薦

2017-11-27 12:24:02

命令行代碼指令

2016-12-02 20:43:28

Android

2018-10-28 17:54:00

分布式事務數據

2024-03-12 08:44:56

WebWorkerTypeScript語法

2017-11-06 19:09:45

在線抓娃娃機

2015-08-12 16:32:34

華為/物聯網

2017-10-28 23:13:43

微服務架構開發單體應用

2020-07-21 18:54:21

Rust類型轉換語言

2016-09-29 17:48:32

騰訊云語音質檢珍愛網

2025-08-18 07:35:40

2016-12-26 09:50:15

2017-09-27 14:57:44

IOS 11Siri蘋果

2021-02-07 08:13:18

@DateTimeFo@NumberFormSpring

2013-09-18 10:44:01

搜狗輸入法詞語

2022-01-04 08:00:48

前端技術Esbuild

2014-10-08 15:00:50

SUSE操作系統云計算

2020-07-29 10:00:13

MySQL雙主架構數據庫

2024-06-13 08:19:08

Controller接口參數

2019-01-29 10:00:59

GitHub開源搜索

2024-05-17 09:37:26

format屬性Spring
點贊
收藏

51CTO技術棧公眾號

冲田杏梨av在线| 动漫美女被爆操久久久| 日韩一区二区a片免费观看| 日韩精品99| 国产亚洲精品中文字幕| 国产不卡在线观看| 美女三级黄色片| 高潮按摩久久久久久av免费| 亚洲欧美国产毛片在线| 97免费高清电视剧观看| 中文字幕美女视频| av成人app永久免费| 欧美日韩中文在线| 亚洲欧洲一区二区福利| a在线观看免费| 中文日韩欧美| 久久精品国产清自在天天线 | 欧美日韩国产免费一区二区三区| 成人免费毛片男人用品| 丝袜久久网站| 欧美日韩欧美一区二区| 黄色成人在线免费观看| 日韩av资源| 精品一区二区三区免费毛片爱| 欧美福利视频网站| 欧美激情aaa| 精品国产一区二区三区性色av| 午夜精品免费在线| 在线视频欧美一区| 日韩精品视频无播放器在线看| 久久国产夜色精品鲁鲁99| 97香蕉久久超级碰碰高清版| 精品亚洲乱码一区二区| 综合国产视频| 欧美不卡一二三| 久热精品在线播放| 99久久精品免费看国产小宝寻花| 国产精品久久久久桃色tv| 精品国产一区二区三| 91亚洲国产成人精品一区| 亚洲一区视频| 久久久久国产视频| 国产日产在线观看| 国产不卡av一区二区| 欧美成人一级视频| 久国产精品视频| 日韩中文在线播放| 天天综合网天天综合色| 精品国产一区二区三区在线| 18免费在线视频| 久久久蜜桃精品| 久久精品99| 欧美少妇bbw| 国产福利不卡视频| 91大片在线观看| 中文字幕av免费观看| 免费在线亚洲欧美| 97精品在线视频| 国产一级一级片| 欧美一区二区三区久久精品| 亚洲乱亚洲乱妇无码| 波多野结衣有码| 白嫩白嫩国产精品| 亚洲精品一区二区三区精华液| 中文字幕55页| 91蜜桃臀久久一区二区| 日韩欧美视频在线| 97超碰免费在线观看| 亚洲男男av| 91精品国产黑色紧身裤美女| 精品亚洲视频在线| 四虎影视国产精品| 欧美日韩成人高清| 小泽玛利亚视频在线观看| 日本一区免费网站| 欧洲精品在线观看| 日韩av片网站| 伊人久久精品| 欧美一二三区在线| 永久免费未满蜜桃| 白嫩白嫩国产精品| 日韩麻豆第一页| 中文字幕 自拍| 日韩成人激情| 久久久国产91| 精品人妻伦九区久久aaa片| 欧美激情1区| 久久久久国产精品一区| 99视频在线看| 视频一区二区不卡| 日本一区二区不卡| 在线观看免费黄色小视频| 久久成人综合网| 97自拍视频| 无码国产精品一区二区色情男同 | 亚洲成人av在线电影| 久久精品xxx| 国产免费不卡| 911国产精品| 天天久久综合网| silk一区二区三区精品视频| 精品国精品国产尤物美女| 真人bbbbbbbbb毛片| 国产尤物久久久| 久久视频精品在线| 久久久国产高清| 免费观看30秒视频久久| 国产日韩欧美成人| 日韩在线视频免费| 欧美极品美女视频| 99精品视频网站| 日本在线啊啊| 日韩久久久精品| 日本美女bbw| 午夜在线视频一区二区区别| 97碰碰视频| 老司机在线看片网av| 欧美色播在线播放| 久久人妻少妇嫩草av蜜桃| 97精品视频| 国产精品久久视频| 日本1级在线| 午夜精品久久久久久久久久 | 国产高清精品二区| 亚洲色图色老头| 男女视频免费看| 福利电影一区二区三区| 9999在线观看| 欧美成人毛片| 色悠悠久久久久| 成人黄色三级视频| 久久久久国产精品麻豆ai换脸 | 亚洲精品88| 亚洲第一精品夜夜躁人人躁| 91视频综合网| 国内精品写真在线观看| 亚洲乱码一区二区三区三上悠亚 | 91福利在线免费观看| 艳妇乳肉亭妇荡乳av| 狠狠干综合网| 91久久久国产精品| 欧美日韩在线资源| 欧美精品精品一区| 无码人妻精品中文字幕| 九九**精品视频免费播放| 亚洲狠狠婷婷综合久久久| 高清电影一区| 在线午夜精品自拍| 亚洲天堂网在线视频| 中文字幕一区二区日韩精品绯色| 亚洲免费看av| 久久精品亚洲欧美日韩精品中文字幕| 国产精品三级久久久久久电影| 97精品人妻一区二区三区蜜桃| а√天堂官网中文在线| 欧美日韩免费一区二区三区视频| 中字幕一区二区三区乱码| 久久精品毛片| 色噜噜一区二区| 啪啪av大全导航福利综合导航| www.久久撸.com| 国产伦理吴梦梦伦理| 亚洲久草在线视频| 中文字幕天堂av| 亚洲欧美日韩国产综合精品二区| 久久久久久久久久久久久久一区 | 欧美日韩不卡一区| 波多野结衣不卡视频| 国产一区二区女| 黄色大片中文字幕| 日韩极品在线| 国产精品久久av| 黄色在线视频网站| 精品日本一线二线三线不卡| 欧美一区二区三区四| 欧美激情一区二区三区全黄| 一个色综合久久| 欧美日韩免费| 欧美另类高清视频在线| 国产成人福利夜色影视| 欧美大尺度激情区在线播放| 欧美自拍第一页| 欧洲精品一区二区三区在线观看| 97在线观看视频免费| 成人夜色视频网站在线观看| 国产一区二区在线视频播放| 亚洲女娇小黑人粗硬| 国产精品爱久久久久久久| a级片国产精品自在拍在线播放| 亚洲福利视频网| 中文字幕在线2018| 亚洲成人综合视频| 懂色av粉嫩av浪潮av| 国产成人无遮挡在线视频| 一本色道无码道dvd在线观看| 日韩一区自拍| 精品一卡二卡三卡四卡日本乱码| 78精品国产综合久久香蕉| 高清一区二区三区四区五区| 成人影视在线播放| 亚洲成人激情视频| 一本色道久久综合无码人妻| 午夜伦欧美伦电影理论片| 国产又粗又长免费视频| 99视频一区二区| 北条麻妃亚洲一区| 狂野欧美性猛交xxxx巴西| 欧美一区二区激情| 性欧美69xoxoxoxo| 日本午夜精品一区二区三区| 国产精品乱战久久久| 成人日韩在线电影| 欧美韩国亚洲| 91精品国产91| 视频在线观看入口黄最新永久免费国产 | 1024av视频| 欧美啪啪一区| 中文字幕一区综合| japanese国产精品| 国产区二精品视| 久久69av| 91精品美女在线| 亚洲精品555| 青青久久aⅴ北条麻妃| 成人在线免费观看黄色| 久久久成人精品| 欧美jizzhd欧美| 中文日韩在线观看| 黄色毛片在线观看| 亚洲精品福利视频| 亚洲精品视频网| 欧美一区二区三区在线看| 伊人网中文字幕| 91国产免费看| 99久久久久久久久| 亚洲人成精品久久久久| 久久精品在线观看视频| 国产婷婷色一区二区三区四区| 免费的av网站| 9色porny自拍视频一区二区| 污网站免费观看| 国产91精品免费| 少妇熟女视频一区二区三区| 国产成人亚洲综合色影视| 一级黄色大片儿| 国产一区二区导航在线播放| 亚洲免费成人在线视频| 精品一区二区三区免费视频| 超碰在线资源站| 国产福利一区二区| 女同性αv亚洲女同志| 国产成人av一区二区三区在线 | 亚洲精品性视频| 麻豆精品一区二区三区| 婷婷免费在线观看| 激情综合色播五月| av影片在线播放| 成人h动漫精品一区二| 一级黄色免费视频| 26uuu亚洲综合色| 日本免费www| 最好看的中文字幕久久| 免看一级a毛片一片成人不卡| 亚洲国产另类精品专区| 日韩精品国产一区二区| 欧美日韩精品在线播放| 国产精品视频一区在线观看| 在线中文字幕一区二区| 一级黄色片网站| 日韩女优视频免费观看| 精品毛片一区二区三区| 欧美精品一区二区在线观看| 日韩成人黄色| 日韩在线免费av| wwww在线观看免费视频| 日本欧美一级片| 另类一区二区| 国产美女在线精品免费观看| 蜜乳av综合| 亚洲自拍偷拍一区二区三区| 极品裸体白嫩激情啪啪国产精品| 国产l精品国产亚洲区久久| 免费高清在线视频一区·| 国产男女无遮挡猛进猛出| av资源网一区| 中文字幕乱码av| 天天综合色天天综合| 亚洲一区二区人妻| 亚洲福利视频在线| 生活片a∨在线观看| 久久久久久久国产精品视频| 日韩高清成人| 国产美女精品久久久| 欧美一区二区三区激情视频| 国产精品www在线观看| 视频一区二区中文字幕| 逼特逼视频在线观看| 久久精品免费在线观看| 欧美黄色免费看| 欧美偷拍一区二区| 色wwwwww| 久久精品91久久香蕉加勒比| 在线观看涩涩| 91在线免费看片| 日韩欧美三级| 国产成人a亚洲精v品无码| 国产老肥熟一区二区三区| 精品人妻无码一区| 午夜视频一区在线观看| hs视频在线观看| 中文字幕欧美国内| 特黄毛片在线观看| 成人高清在线观看| 99精品美女| 一级特黄性色生活片| 91色.com| 中文字幕在线字幕中文| 日韩午夜精品电影| 尤物网在线观看| 国产成人av网址| 天堂俺去俺来也www久久婷婷 | 日韩精品一区二区三区视频| 电影在线高清| 日本欧美爱爱爱| 亚州综合一区| 3d动漫一区二区三区| 国产91丝袜在线观看| 外国一级黄色片| 欧美夫妻性生活| 秋霞成人影院| 国产成人在线播放| 欧美女优在线视频| 免费在线激情视频| 99国产精品国产精品久久| 欧美日韩三级在线观看| 欧美一区二区福利在线| 色开心亚洲综合| 免费日韩精品中文字幕视频在线| 欧美h视频在线观看| 日韩 欧美一区二区三区| 最新在线黄色网址| 精品国产户外野外| av女名字大全列表| 97在线精品视频| 小说区图片区色综合区| 国产精品一区二区免费在线观看| 成人福利视频网站| 日韩xxx高潮hd| 亚洲精品一区二区三区福利| 第四色日韩影片| 好吊妞www.84com只有这里才有精品| 欧美不卡一区| www.四虎在线| 午夜av电影一区| 无码h黄肉3d动漫在线观看| 97在线精品国自产拍中文| 日韩高清在线免费观看| 欧美日韩在线中文| 国产视频一区不卡| 日本成人一级片| 日韩中文字幕国产| 国产精品亚洲综合在线观看| 日本在线视频www色| 国产福利视频一区二区三区| 免费在线一区二区三区| 亚洲国产又黄又爽女人高潮的| 美女av在线免费看| 日本免费高清一区| 奇米888四色在线精品| 蜜桃av.com| 精品国产一区二区在线观看| 免费污视频在线| 精品国产一区二区三区麻豆小说 | 亚洲精品视频三区| 亚洲一区在线视频观看| 免费看av毛片| 奇米一区二区三区四区久久| 日韩中文字幕高清在线观看| wwwxxx色| 色婷婷精品大在线视频| 免费a级在线播放| 国产精品毛片va一区二区三区| 久久激情综合| 免费中文字幕日韩| 亚洲激情第一页| 日韩国产91| 日韩av在线播放不卡| 国产日韩精品视频一区| 国产精品日韩无码| 日本精品一区二区三区在线| 97精品国产福利一区二区三区| 伊人网综合视频| 欧美色图在线观看| caoporn-草棚在线视频最| 日韩高清av| 成人美女在线视频| 亚洲一区二区视频在线播放| 久久久久五月天| 国产精品久久久久久久久久10秀| 日本一卡二卡在线|