📜  Node.js console.dir() 方法(1)

📅  最后修改于: 2023-12-03 14:44:38.063000             🧑  作者: Mango

Node.js console.dir() 方法

简介

Node.js中有许多输出控制台信息的方法,其中console.dir()方法可以打印一个对象的所有属性和方法列表,非常适用于调试。

语法
console.dir(obj, options)
  • obj:必需,要打印的对象或数组
  • options:可选,控制输出的选项,比如是否显示隐藏属性等
示例

以下是一个演示如何使用console.dir()方法的示例:

const myObj = {
  name: 'John',
  age: 30,
  hobbies: ['reading', 'writing', 'coding'],
  address: {
    street: '123 Main St',
    city: 'Anytown',
    state: 'CA'
  }
};

console.dir(myObj);

输出结果如下:

{ name: 'John',
  age: 30,
  hobbies: [ 'reading', 'writing', 'coding' ],
  address:
   { street: '123 Main St',
     city: 'Anytown',
     state: 'CA' } }
options参数

options参数是一个带有以下属性的对象:

  • customInspect:布尔值,如果为false,则隐藏对象的自定义inspect()函数。默认为true
  • depth:数值,指定显示对象的嵌套层数。默认为2
  • showHidden:布尔值,指定是否显示对象的隐藏属性。默认为false
  • colors:布尔值,指定是否在控制台输出使用ansi颜色。默认为false
  • compact:布尔值,指定是否删除行末的空格和制表符以节省输出空间。默认为true

例如:

const myObj = {
  name: 'John',
  age: 30,
  hobbies: ['reading', 'writing', 'coding'],
  address: {
    street: '123 Main St',
    city: 'Anytown',
    state: 'CA'
  },
  inspect() {
    return `Name: ${this.name}, Age: ${this.age}`;
  },
  [Symbol('foo')]: 'bar'
};

console.dir(myObj, {showHidden: true, colors: true});

输出结果如下:

{ name: 'John',
  age: 30,
  hobbies: [ 'reading', 'writing', 'coding' ],
  address:
   { street: '123 Main St',
     city: 'Anytown',
     state: 'CA' },
  [Symbol(foo)]: 'bar' }

可以看到,由于设置了showHiddentrue,隐藏属性[Symbol(foo)]也被输出了。

总结

console.dir()方法是一个强大的调试工具,可以方便地输出对象的所有属性和方法。通过选项参数,可以控制输出的细节,从而更好地满足调试需求。