• Node.js Video Tutorials

NodeJS - console.dir() 方法



Node.js console.dir() 方法Console 類的一個內建方法。

Node.js 的 console.dir() 方法返回特定物件的屬性。此方法用於在終端視窗中顯示特定物件的屬性的互動式列表。當呼叫時,它會列印物件的屬性和值的層次結構表示,使使用者能夠快速檢查它們,而無需手動遍歷每個屬性或值。

這在除錯時特別有用。這是因為檢視物件比在控制檯日誌中輸入各個屬性及其關聯的值更容易。

假設一個男孩是一個物件,他有一些屬性,例如姓名、年齡、學校、分數等。要返回男孩的屬性,我們使用 Node.js 的 console.dir() 方法。為了更好地理解,讓我們瞭解一下 console.dir() 方法的語法和用法。

語法

以下是 Node.js console.dir() 方法的語法:

console.dir(object[, options])

引數

此方法僅接受兩個引數。下面描述了這些引數。

  • object − 此引數指定要返回的物件。

以下是可選引數,讓我們瞭解一下它們。

  • showHidden − 這是一個 布林值。如果為真,則將顯示物件的不可列舉和符號屬性。

  • depth − 這是一個數字。這將讓我們列印指定物件的層級。預設情況下,深度為 2。如果我們想要獲取物件的所有層級,則傳遞 null

  • colors − 這是一個 布林值。如果我們傳遞 true,則屬性值將以 ANSI 顏色程式碼顯示。我們可以自定義顏色。預設值為 false(無 ANSI 顏色)

返回值

此方法返回指定物件的屬性。

示例

Node.js 的 console.dir() 方法僅接受一個 object 引數。

在下面的示例中,我們正在建立一個具有可列舉屬性的物件。要返回物件的屬性,我們使用物件名稱作為引數呼叫 Node.js console.dir() 方法。

var object = {
   Name : "Nik",
   Age : 31,
   Eyes :"black",
   height : 5.2,
   weight : 70
}
console.dir(object);

輸出

正如我們在下面的輸出中看到的,當我們透過將物件名稱作為引數傳遞來呼叫 console.dir() 方法時,將列出物件的可列舉屬性。

{ Name: 'Nik', Age: 31, Eyes: 'black', height: 5.2, weight: 70 }

示例

在下面的示例中,我們正在建立一個 4 層的物件。要返回物件的屬性,我們使用物件名稱作為引數呼叫 console.dir() 方法。

注意 − 預設情況下,console.dir() 方法只能深入到 2 層。

var object = { // level 0 start
   firstname : "James",
   lastname : "Anderson",
   Initial : function() {
      return this.firstname[0] + this.lastname[0];
   },
   attrributes: { // level 1 start
      age : 34,
      school : "High school",
      hobbies : { // level 2 start
         favourite : { // level 3 start
            sport : "football",
            book : "Nothing"
         },
         RecentlyPlayed : {
            game : "cricket",
            videogame : "GTA5"
         } // level 3 ends
      } // level 2 ends   
   } // level 1 ends
} // level 0 ends

console.dir(object);

輸出

正如我們在下面的輸出中看到的,我們得到了物件屬性的輸出,最多 2 層。因此,要獲取物件的所有屬性,我們需要使用 depth 引數。要了解 depth 引數的用法,請檢視下一個示例。

{
   firstname: 'James',
   lastname: 'Anderson',
   Initial: [Function: Initial],
   attrributes: {
      age: 34,
      school: 'High school',
      hobbies: { favourite: [Object], RecentlyPlayed: [Object] }
   }
}

示例

Node.js 的 console.dir() 方法還接受一些其他引數,如 showHidden、depthcolors,我們在示例中使用了 depth 可選引數。

在下面的示例中,

  • 我們正在建立一個 4 層的物件。

  • 要返回物件的屬性,我們使用物件名稱作為引數呼叫 console.dir() 方法。

  • 預設情況下,它僅返回物件屬性的前 2 層。

  • 我們嘗試透過使用 depth 引數獲取物件的所有層級的屬性。

var object = { // level 0 start
   firstname : "James",
   lastname : "Anderson",
   Initial : function() {
      return this.firstname[0] + this.lastname[0];
   },
   attrributes: { // level 1 start
      age : 34,
      school : "High school",
      hobbies : { // level 2 start
         favourite : { // level 3 start
            sport : "football",
            book : "Nothing"
         },
         RecentlyPlayed : {
            game : "cricket",
            videogame : "GTA5"
         } // level 3 ends
      } // level 2 ends   
   } // level 1 ends
} // level 0 ends

console.dir(object, {depth: null, showHidden: true});

輸出

正如我們在下面的輸出中看到的,物件的所有層級的屬性都已打印出來。我們透過將 depth 宣告為 null 來實現這一點。

{
  firstname: 'James',
  lastname: 'Anderson',
  Initial: [Function: Initial] {
    [length]: 0,
    [name]: 'Initial',
    [arguments]: null,
    [caller]: null,
    [prototype]: Initial { [constructor]: [Circular] }
  },
  attrributes: {
    age: 34,
    school: 'High school',
    hobbies: {
      favourite: { sport: 'football', book: 'Nothing' },
      RecentlyPlayed: { game: 'cricket', videogame: 'GTA5' }
    }
  }
}

示例

Node.js 的 console.dir() 方法還接受一些其他引數,如 showHidden、depthcolors,我們在示例中使用了 showHidden 可選引數。

在下面的示例中,

  • 我們正在建立一個 4 層的物件。

  • 要返回物件的屬性,我們使用物件名稱作為引數呼叫 console.dir() 方法。

  • 我們將 showHidden 引數傳遞為 true,它將顯示隱藏物件的不可列舉和符號屬性。

var object = { // level 0 start
   firstname : "James",
   lastname : "Anderson",
   Initial : function() {
      return this.firstname[0] + this.lastname[0];
   },
   attrributes: { // level 1 start
      age : 34,
      school : "High school",
      hobbies : { // level 2 start
         favourite : { // level 3 start
            sport : "football",
            book : "Nothing"
         },
         RecentlyPlayed : {
            game : "cricket",
            videogame : "GTA5"
         } // level 3 ends
      } // level 2 ends   
   } // level 1 ends
} // level 0 ends

console.dir(object, {depth: null, showHidden: true});

輸出

正如我們在輸出中看到的,隱藏屬性與物件的屬性一起顯示在輸出中。

{
   firstname: 'James',
   lastname: 'Anderson',
   Initial: <ref *1> [Function: Initial] {
      [length]: 0,
      [name]: 'Initial',
      [arguments]: null,
      [caller]: null,
      [prototype]: { [constructor]: [Circular *1] }
   },
   attrributes: {
      age: 34,
      school: 'High school',
      hobbies: {
         favourite: { sport: 'football', book: 'Nothing' },
         RecentlyPlayed: { game: 'cricket', videogame: 'GTA5' }
      }
   }
}

示例

Node.js 的 console.dir() 方法還接受一些其他引數,如 showHidden、depthcolors,我們在示例中使用了 colors 作為可選引數。

在下面的示例中,

  • 我們正在建立一個 4 層的物件。

  • 要返回物件的屬性,我們使用物件名稱作為引數呼叫 console.dir() 方法。

  • 我們透過將 colors 引數傳遞為 true 來更改輸出的顏色(使用 ANSI 顏色程式碼)。預設值為 false(無顏色)。

var object = {  // level 0 start
   firstname : "James",
   lastname : "Anderson",
   Initial : function() {
      return this.firstname[0] + this.lastname[0];
   },
   attrributes: { // level 1 start
      age : 34,
      school : "High school",
      hobbies : { // level 2 start
         favourite : { // level 3 start
            sport : "football",
            book : "Nothing"
         },
         RecentlyPlayed : {
            game : "cricket",
            videogame : "GTA5"
         } // level 3 ends
      } // level 2 ends   
   } // level 1 ends
} // level 0 ends

console.dir(object, {depth: null, showHidden: true, colors: true});

輸出

正如我們在輸出中看到的,我們為物件的 string 屬性獲得了其中一種顏色,為物件的 integer 屬性獲得了另一種顏色。

{
   firstname: 'James',
   lastname: 'Anderson',
   Initial: <ref *1> [Function: Initial] {
      [length]: 0,
      [name]: 'Initial',
      [arguments]: null,
      [caller]: null,
      [prototype]: { [constructor]: [Circular *1] }
   },
   attrributes: {
      age: 34,
      school: 'High school',
      hobbies: {
         favourite: { sport: 'football', book: 'Nothing' },
         RecentlyPlayed: { game: 'cricket', videogame: 'GTA5' }
      }
   }
}
nodejs_console_module.htm
廣告

© . All rights reserved.