我正在使用console.log语句进行调试,但是遇到一个使用’,’或”与console.log语句以不同模式记录输出的情况.例如
(function () { var x = []; x.push({ a: 1,b: 2,},{ a: 4,b: 3,{ a: 5,b: 6 },{ a: 7,b: 8,}) console.log('Logging with,',x); console.log('Logging with + ' + x); }())
当我使用’,’与console.log我看到输出为
Logging with,[Object,Object,Object]
并且每个这个对象都是可扩展的.但是,我看到输出为
Logging with + [object Object],[object Object],[object Object]
为了演示,我创造了这个jsfiddle.
你能帮我理解为什么我们看到这个差异.
解决方法
(string concatenation operator)与对象将调用对象上的toString方法,并返回一个字符串.
所以,”对象相当于object.toString().而ToString对象返回“[object Object]”.
所以,”对象相当于object.toString().而ToString对象返回“[object Object]”.
随着,该对象作为独立参数传递给log方法.