JavaScript console.log() 小技巧
本文轉(zhuǎn)載自微信公眾號“前端先鋒”(jingchengyideng)。
每個前端都會用 JavaScript 控制臺打日志或調(diào)試。但是 console 對象比 console.log() 有更多的東西。
計算屬性名稱
ES6 的計算屬性名稱特別有用,因為它們可以通過在變量周圍添加一對大括號來幫你識別的變量。
- const x = 1, y = 2, z = 3;
- console.log({x, y, z}); // {x: 1, y: 2, z: 3}
console.trace()
console.trac() 與 console.log() 完全相同,但它也會輸出整個棧跟蹤,能讓你確切地知道到底發(fā)生了什么。
- const outer = () => {
- const inner = () => console.trace('Hello');
- inner();
- };
- outer();
- /*
- Hello
- inner @ VM207:3
- outer @ VM207:5
- (anonymous) @ VM228:1
- */
console.group()
console.group() 可以把日志分組為可折疊的結構,當有多個日志時特別有用。
- console.group('Outer'); // 創(chuàng)建一個名為 'Outer' 的組
- console.log('Hello'); // 在 'Outer' 組中輸出日志
- console.groupCollapsed('Inner'); // 創(chuàng)建一個名為 'Inner' 的組,折疊狀態(tài)
- console.log('Hellooooo'); // 在 'Inner' 組中輸出日志
- console.groupEnd(); // 結束當前組, 'Inner'
- console.groupEnd(); // 結束當前組, 'Outer'
- console.log('Hi'); // 在組外輸出日志
日志級別
除了 console.log() 之外,還有其他一些日志記錄級別,例如 [console.debug()](https://developer.mozilla.org/en-US/docs/Web/API/Console /debug)、 console.info()、 console.warn()和 console.error()。
- console.debug('Debug message');
- console.info('Useful information');
- console.warn('This is a warning');
- console.error('Something went wrong!');
console.assert()
console.assert() 提供了一種簡便的方法,僅在斷言失敗時將某些內(nèi)容記錄為錯誤(例如當?shù)谝粋€參數(shù)為 false 時),否則完全跳過日志。
- const value = 10;
- console.assert(value === 10, 'Value is not 10!'); // 不輸出日志
- console.assert(value === 20, 'Value is not 20!'); // 輸出日志:"Value is not 20!"
console.count()
可以用 console.count() 來統(tǒng)計一段代碼執(zhí)行了多少次。
- Array.from({ length: 4 }).forEach(
- () => console.count('items') // 名為 items 的計數(shù)器
- );
- /*
- items: 1
- items: 2
- items: 3
- items: 4
- */
- console.countReset('items'); // 重置計數(shù)器
console.time()
console.time() 提供了一種快速檢查代碼性能的方法,但是由于精度較低,不可用于真正的基準測試。
- console.time('slow comp');
- console.timeLog('slow comp');
- console.timeEnd('slow comp');
CSS
最后一個,還可以在 console.log() 中用 %c 字符串替換表達式將 CSS 應用于日志的各個部分。
- console.log(
- 'CSS can make %cyour console logs%c %cawesome%c!',
- 'color: #fff; background: #1e90ff; padding: 4px',
- '',
- 'color: #f00; font-weight: bold',
- ''
- );