• toString和valueOf


    文章目录


    在JavaScript中,toString和valueOf用来解决值的显示和运算问题的。

    toString()

    toString函数的作用是把一个逻辑值转为字符串,并且返回。比如[1,2,3,4,5].toString()结果为‘1,2,3,4,5’。

    function的toString()结果是函数的文本定义,比如:

    (function(x){return x *2;}).toString(); 
    //'function(x){return x *2;}'
    
    • 1
    • 2

    另一个常见的Date类型,new Date().toString()结果为’Sun Sep 11 2022 15:22:05 GMT+0800 (中国标准时间)’

    Object类型数据的toString()方法,返回的结果是’[object Object]’

    valueOf()

    valueOf函数是用来返回最适合引用类型的原始值。如果没有原始值,就返回引用类型本身。

    Object类型数据的valueOf()函数默认返回结果是"{}",一个空的对象字面量。

    Array的valueOf方法返回的是array本身。比如:[1,2,4].valueOf()结果为 [1, 2, 4];

    function的valueOf()返回的也是函数本身;

    Date的valueOf(),返回的是指定日期的时间戳,比如:new Date().valueOf(),结果为1662881283445

    当一个引用类型值存在toString并且也存在valueOf()的话,分为两种情况:

    1. 引用类型转换为string类型: 当引用类型转换为string类型的时候,一般是用来展示数据,所以:
    1. 如果对象具有toString函数,那么优先调用toString函数,如果返回值是原始数据类型,则直接将返回值转换为字符串并且返回。
    2. 如果对象没有toString函数或者是toString返回值不是一个原始数据类型,则会调用valueOf()函数,如果valueOf返回值是一个原始数据类型,就将该返回值转换为字符串,否则返回类型转换异常。
    1. 引用类型转换为Number类型的时候,一般是用来进行运算的,所以:
    1. 如果对象具有valueOf方法,则会调用valueOf方法,如果valueOf返回值是原始数据类型,则将返回值转换为number并且返回
    2. 如果对象没有valueOf或者是valueOf方法返回的值不是原始数据类型,那么会调用toString方法,如果toString方法的返回值是原始数据类型,那么返回值转换为数字并且返回数字。
    3. 如果valueOf()和toString都不能获取到一个原始数据类型的值,就抛出类型转换异常。

    这就是valueOf和toString的基本区别。

  • 相关阅读:
    实现国产化转型,ZStack Cloud 助力中铁财务数字化转型!
    python安装包方式汇总
    Spring Cloud Netflix之OpenFeign
    C. Number Game(博弈)
    c语言对三个数进行比较找出其中的最值
    RNN和注意力机制是啥关系
    5.5线程同步机制类封装及线程池实现
    【python脚本】用于生成简单握手接口与自测环境的gen_uvm_agent脚本
    在微信公众号怎么实现答题活动
    图文并茂:JVM内存布局详解
  • 原文地址:https://blog.csdn.net/xuelian3015/article/details/126805487