TypeError: can't convert console.log(...) to primitive type

时间:2021-06-10 02:42:46

一、背景

火狐浏览器提示这个错误,谷歌没有。

二、出错代码

 var eventHandlers = {
'succeeded': function(e){
console.log('send success' + e.cause)
},
'failed': function(e){
console.log('send failed,reason='+e.cause)
}
};

三、原因

火狐处理console.log('send success' + e.cause)的时候,会默认把e.cause转换成String类型,所以提示如题的错误。

四、解决办法

不适用字符串拼接的方式,直接打印。

五、修订后的代码

 var eventHandlers = {
'succeeded': function(e){
console.log(e.cause),
console.log('send success')
},
'failed': function(e){
console.log('send failed,reason'),
console.log(e.cause)
}
};

六、测试结果

错误消除。