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。它删除了函数、符号、原型等,因此没有任何用处。直接记录对象在可用性方面要好得多。