Javascript ES6 console.log 对象使用模板文字

Javascript ES6 console.log object using template literal

我想在控制台中显示一个简单的对象

var obj = { name: 'John', age: 22 }

如果我输入:

console.log(obj)

对象{姓名:"John",年龄:22}

如果我输入:

console.log('my object is: ' + obj)

我的对象是:[对象对象]

console.log('my object is: %o', obj)

我的对象是:对象{姓名:"John",年龄:22}

如何使用模板文字实现此目的?

如果我输入:

console.log(`my object is: ${obj}`)

我的对象是:[对象对象]

您可以使用 JSON.stringify 序列化对象。

var obj = { name: 'John', age: 22 };
console.log(`my object is: ${JSON.stringify(obj)}`);

var obj = { name: 'John', age: 22 }
log`This is obj: ${obj}`

function log(strings, ...values) {
   console.log(strings.reduce((p, c, i) => 
        `${p}${c}${values[i]?JSON.stringify(values[i]):''}`, ''));
}

console.logMy object is: ${obj};

灰色部分的两端有波浪号 (`),但格式正在删除它们