本机传递给控制台.log和 toString 的内容之间的区别



在以下示例中:

let s = {x: 1, y: 1};
console.log(s, s.toString());

'[object Object]'方法在哪里定义?为什么打印对象的结果与执行object.toString((不同?

各种环境的控制台通常用于调试(因此进行了优化(。如果您记录一个对象,控制台可能会向您显示该对象的完整、可读、交互式视图。控制台不会在显示日志值之前将其转换为字符串,这对调试没有帮助。

当一个对象调用了Object.prototype.toString时,它需要在规范中完成这些步骤,这将导致记录[object SOMETHING],其中SOMETHING可能是ArrayFunction等,如果这些特殊情况都不匹配,则可能是Object。对于普通对象,没有任何特殊情况匹配,因此您得到[object Object]

JSON.stringify()替换s.string()。。。

请参阅此处。。。什么';与JSON.stringfy((相比,使用toString((有什么不同?用于进一步

最新更新