参考:https://segmentfault.com/a/1190000010824347
toString():返回对象的字符串表示
valueOf():返回对象的字符串、数值或者布尔值表示
var a = 3 var b = '3' var c = true var d = { test: 1 } var e = function () { console.log(1) } var f = [1, 2] console.log(a.toString()) //'3' console.log(b.toString()) //'3' console.log(c.toString()) //'true' console.log(d.toString()) //'[object Object]' console.log(e.toString()) //'function () { console.log(1) }' console.log(f.toString()) //'1,2' console.log(a.valueOf()) //3 console.log(b.valueOf()) //'3' console.log(c.valueOf()) //true console.log(d.valueOf()) //{ test: 1 } console.log(e.valueOf()) //ƒ () { console.log(1) } console.log(f.valueOf()) //[1, 2]
undefined和null没有这两个方法,调用会报错。
根据以上代码得出:
toString()会将变量类型转换为字符串。在处理对象时,返回'[object Object]’;在处理函数时,返回字符串式函数体;在处理数组时,相当于arr.join(‘,’)。
valueOf()全部返回自身。