希望這5個技巧可以使你使用console.log()體驗更加高效

我們知道 console.log(message)用法很簡單,表示將參數message 打印到控制檯上。

<code>console.log('前端小智')
// 前端小智

const myAge = 28
console.log(myAge) // 28/<code>

本文主要介紹5個有用的技巧,可幫助你在使用console.log()時提高工作效率。

1. 打印全名變量

如果在控制檯打印多個變量,是數量比較多的情況下,我們很難區別哪個變量對應哪個值。

<code>function sum(a, b) {
  console.log(b);
  return a + b;
}

sum(1, 2);
sum(4, 5);/<code>

執行上述代碼後,我們只會看到一系列數字:

希望這5個技巧可以使你使用console.log()體驗更加高效

要表示值和變量之間關係,可以用花括號把變量包起來:{b}:

希望這5個技巧可以使你使用console.log()體驗更加高效

2.高級格式化

將某些東西打印到控制檯最常見方法是簡單地使用一個參數調用console.log():

<code>console.log('前端小智') // 前端小智/<code>

有時我們可能想要一條包含多個變量的信息。幸運的是,console.log()可以使用%s,%i等說明符以sprintf()的方式格式化字符串。

<code>const user = '前端小智';
const attempts = 5;

console.log('%s 登錄失敗了 %i 次', user, attempts);
// 前端小智 登錄失敗了 5 次/<code>

%s和%i被user和attempts的值替換。說明符%s轉換為字符串,而%i轉換為數字。

以下是可用說明符的列表:

說明符作用%s元素轉換為字符串%d 或 %i元素轉換為整數%f元素轉換為浮點數%o元素以最有效的格式顯示%O元素以最有效的格式顯示%c應用提供的CSS

具有樣式的打印風格

瀏覽器控制檯允許我們將樣式應用於打印的消息,我們可以通過將%c說明符與相應的CSS樣式一起使用來實現,如下所示:

<code>console.log('%c Big message', 'font-size: 36px; font-weight: bold');/<code>

說明符%c應用CSS樣式'font-size: 36px; font-weight: bold'

希望這5個技巧可以使你使用console.log()體驗更加高效

4. 交互展示

日誌樣式化依賴於主機的控制檯實現。像Chrome和Firefox這樣的瀏覽器提供對象和數組的交互展示,而 Node 控制檯輸出為文本。

來看看Chrome如何打印普通對象,數組和DOM樹,可以通過展開和摺疊與這些元素進行交互。

4.1 Objects

<code>const myObject = {
  name: 'John Smith',
  profession: 'agent'
};

console.log(myObject);/<code>

在Chrome控制檯中,myObject的打印如下所示:

希望這5個技巧可以使你使用console.log()體驗更加高效

可以展開和摺疊對象屬性列表,也可以看到對象的原型。

4.2 Arrays

<code>const characters = ['Neo', 'Morpheus', 'John Smith'];

console.log(characters);/<code>
希望這5個技巧可以使你使用console.log()體驗更加高效

4.3 DOM 樹結構

我們可以直接與控制檯中顯示的DOM元素進行交互。

<code>console.log(document.getElementById('root'));/<code>

在Chrome控制檯中,可以擴展DOM元素,並可以全面瀏覽其內容:

希望這5個技巧可以使你使用console.log()體驗更加高效

4.4 交互式嵌套裡的消息

%o說明符(為值關聯了正確的打印格式)可以在文本消息中插入數組,對象,DOM元素和常規文本,而不會失去交互性。

<code>const myObject = {
  name: 'John Smith',
  profession: 'agent'
};

console.log('Neo, be aware of %o', myObject);/<code>

從控制檯看,myObject數組不會轉換為字符串,而是保持交互性。

希望這5個技巧可以使你使用console.log()體驗更加高效

5. 在 Node 控制檯中打印大對象

Node中的log以純文本形式輸出。但是,Node 中的console.log()不會顯示具有深層嵌套的對象:第3級的對象顯示為[Object]。

<code>const myObject = {
  propA: {
    propB: {
      propC: {
        propD: 'hello'
      }
    }
  }
};

console.log(myObject);/<code>

運行腳本時,propC的對象打印為[Object]:

希望這5個技巧可以使你使用console.log()體驗更加高效

要查看完整的對象結構,可以使用JSON.stringify():

<code>const myObject = {
  propA: {
    propB: {
      propC: {
        propD: 'hello'
      }
    }
  }
};

console.log(JSON.stringify(myObject, null, 2));/<code>

JSON.stringify(myObject, null, 2)返回該對象的JSON表示形式,第三個參數2在空格中設置縮進大小。

希望這5個技巧可以使你使用console.log()體驗更加高效

希望這5個技巧可以使你使用 console.log() 體驗更加高效。



希望這5個技巧可以使你使用console.log()體驗更加高效


分享到:


相關文章: