js基本类型valueOf toString一览

0. 小结

valueOf()是获取对象的原始值,其类型总是该对象的类型
toString()是把对象转换成字符串,其类型就是字符串
在利用==比较时,如果有一个是对象,另一个是字符串 数值或布尔值,js引擎会先优先调用内置对象的valueOf方法,Date比较特殊直接调用toString方法

1. 字符串-值类型

'abc'.valueOf() // "abc"
'abc'.toString() // "abc"
'123'.valueOf() // "123"
'123'.toString() // "123"
typeof '123'.toString() // "string"
typeof '123'.valueOf() // "string"

2. 数值-值类型

var n = 123
n.valueOf() // 123
n.toString() // "123"
typeof n.valueOf() // "number"
typeof n.toString() // "string"

3. 布尔值-值类型

true.valueOf() // true
true.toString() // "true"
typeof true.valueOf() // "boolean"
typeof true.toString() //"string"

4. sybmol-值类型

var sm = Symbol('test')
sm.valueOf() // Symbol(test)
sm.toString() // "Symbol(test)"
typeof sm.valueOf() // "symbol"
typeof sm.toString() // "string"

5. 数组-引用类型

var arr = [1,2,'a',true]
arr.valueOf() // [1, 2, "a", true]
arr.toString() // "1,2,a,true"
typeof arr.valueOf() // "object"
typeof arr.toString() //"string"
arr.valueOf() instanceof Array // true

[].valueOf() // []
[].toString() // ""

6. 函数-引用类型

var fn = function(){console.log('in fn'); return 1;}
fn.valueOf() // ƒ (){console.log('in fn'); return 1;}
fn.toString() // "function(){console.log('in fn'); return 1;}"
typeof fn.valueOf() // "function"
typeof fn.toString() // "string"

7. 对象-引用类型

var obj = {name: 'zhaji', age: 21}
obj.valueOf() // {name: "zhaji", age: 21}
obj.toString() // "[object Object]"
typeof obj.valueOf() // "object"
typeof obj.toString() // "string"

8. Date

var d = new Date()
d // Tue Jul 23 2019 13:42:23 GMT+0800 (中国标准时间)
d.valueOf() // 1563860543000
d.toString() // "Tue Jul 23 2019 13:42:23 GMT+0800 (中国标准时间)"
typeof d.valueOf() // "number"
typeof d.toString() // "string"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值