返回

toString和valueOf

发布时间:2022-10-31 23:43:37 247
# 数据

文章目录

  • ​​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;}'

另一个常见的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的基本区别。

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
React表单自动聚焦的实现 2022-10-31 23:17:34