Javascript 如何将console与console.dir(“string”和“x2B”对象)一起使用

Javascript 如何将console与console.dir(“string”和“x2B”对象)一起使用,javascript,object,ecmascript-6,console,console.log,Javascript,Object,Ecmascript 6,Console,Console.log,这是我的密码: var foo = { age:20 } console.dir(`hello:${foo}`) 我想 hello:{ age: 201 } 但是我有 'hello:[object Object]' 如果我不想使用 console.log("hello") console.dir(foo) 有没有办法在一个控制台功能中打印“hello”和对象的内容?.dir希望传递一个对象,并将其显示为一个表.log用于记录任何内容(包括字符串)。因此,如果要将字符串和对象作为

这是我的密码:

var foo = {
    age:20
}

console.dir(`hello:${foo}`)
我想

hello:{ age: 201 }
但是我有

'hello:[object Object]'
如果我不想使用

console.log("hello")
console.dir(foo)

有没有办法在一个控制台功能中打印“hello”和对象的内容?

.dir
希望传递一个对象,并将其显示为一个表
.log
用于记录任何内容(包括字符串)。因此,如果要将字符串和对象作为表记录,则需要两个不同的函数,或者换句话说:两个不同的函数

如果这样做一次,那么编写一个三行函数将两行减为一行(实际上是四行)是没有意义的。然而,如果你计划更频繁地这样做,那么

 Object.defineProperty(console, "taggedDir", {
    value(name, table) {
       this.log(name);
       this.dir(table);
    }
});

console.taggedDir("Table:", { /*...*/ });

.dir
期望传递一个对象,并将其显示为一个表
.log
用于记录任何内容(包括字符串)。因此,如果要将字符串和对象作为表记录,则需要两个不同的函数,或者换句话说:两个不同的函数

如果这样做一次,那么编写一个三行函数将两行减为一行(实际上是四行)是没有意义的。然而,如果你计划更频繁地这样做,那么

 Object.defineProperty(console, "taggedDir", {
    value(name, table) {
       this.log(name);
       this.dir(table);
    }
});

console.taggedDir("Table:", { /*...*/ });

只需使用
JSON.stringify
。发生的情况是,当您使用字符串插值
${}
时,将调用
toString
方法-在对象上,其结果是
[object object]


console.log({}.toString())只需使用
JSON.stringify
。发生的情况是,当您使用字符串插值
${}
时,将调用
toString
方法-在对象上,其结果是
[object object]


console.log({}.toString())
console.dir(`hello:${JSON.stringify(foo)}`)
在大多数情况下都能工作
console.dir(`hello:${JSON.stringify(foo)}`)
在大多数情况下都能工作,我永远不会使用JSON.stringify。它删除了函数、符号、原型等,因此没有任何用处。就可用性而言,直接记录对象要好得多。我从不使用JSON.stringify。它删除了函数、符号、原型等,因此没有任何用处。直接记录对象在可用性方面要好得多。