JS - valueOf和toString的区别

  1. 区别
    基本上所有的JavaScript数据类型都有valueOf(),toString()方法,null除外,这两个方法解决了JavaScript值运算和显示的问题
    valueOf()会把数据类型转换成原始类型,也就是说原来是什么类型,转换后还是什么类型,日期类型除外
    toString()会把数据类型转换成string类型,也就是说不管原来是什么类型,转换后一律是string类型

  2. 使用场景
    1、valueOf()偏向于运算,toString()偏向于显示
    2、对象转换时,优先调用toString()
    3、强转字符串的情况下,优先调用toString()方法;强转数字的情况下优先调用valueOf()
    4、正常情况下,优先调用toString()
    5、在有运算操作符的情况下valueOf()的优先级高于toString(),这里需要注意的是当调用valueOf()方法无法运算后还是会再调用toString()方法

  3. 总结

    调用valueOf()

    对象类型
    Array数组本身Array
    BooleanBoolean 值Boolean
    Date存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTCNumber
    Function函数本身Function
    Number数字值Number
    Object对象本身,这是默认情况Object
    String字符串String

    调用toString()

    对象类型
    Array数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。其操作与 Array.toString 和 Array.join 方法相同String
    Boolean字符串“true”,“false”String
    Date字符串日期,如"Fri Dec 23 2016 11:24:47 GMT+0800 (中国标准时间)"String
    Function函数字符串String
    Number字符串形式值String
    Object“[object Object]”String
    String字符串String
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值