toString()和valueOf()

参考: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()全部返回自身。

posted @ 2021-07-21 11:20  懒懒同学不懒  阅读(38)  评论(0编辑  收藏  举报