当前位置:首页 > 科技  > 软件

一篇搞懂 toString()函数与valueOf()函数,

来源: 责编: 时间:2023-12-05 09:25:02 362观看
导读tostring 和 valueOf 函数是解决值的显示和运算的问题。所有的 Object 类型的数据都自带 toString 和 valueOf 函数。比如我们定一个 Object 类型数据:const obj = { name: "duxin"}console.log(obj.valueOf()); //

tostring 和 valueOf 函数是解决值的显示和运算的问题。所有的 Object 类型的数据都自带 toString 和 valueOf 函数。Pp128资讯网——每日最新资讯28at.com

比如我们定一个 Object 类型数据:Pp128资讯网——每日最新资讯28at.com

const obj = {    name: "duxin"}console.log(obj.valueOf()); // { name: 'duxin' }

toString()

toString 函数的作用是把一个逻辑转换为字符串,并且返回 Object 类型数据的 toString()默认的返回值"[object Object]"。Pp128资讯网——每日最新资讯28at.com

如果我们在定义对象的时候,可以重写 tosString 函数,这样 toString 的返回值可读性会更好一些,比如:Pp128资讯网——每日最新资讯28at.com

const obj = {    name: "duxin",    toString:function(){        return this.name;    }}console.log(obj.valueOf()); // { name: 'duxin' }console.log(obj.toString()); // duxin

以下这些函数都是有自定义的 toString 函数:Pp128资讯网——每日最新资讯28at.com

  1. Array 的 toString 函数返回值是以逗号分隔的字符串;
  2. Function 的 toString 函数返回值是函数自身的文本定义;
  3. Date 的 toString 函数返回值是时间字符串;

valueOf()

valueOf 函数返回引用类型的原始值,如果没有原始值,就返回"{}",就是空对象的字面量Pp128资讯网——每日最新资讯28at.com

  1. Array的valueOf函数返回的值数组本身;
  2. Function的valueOf函数返回的是函数本身;
  3. Date的valueOf函数返回的值时间戳。

在发生数据类型转换的时候,有liang两种场景:Pp128资讯网——每日最新资讯28at.com

  1. 引用数据类型转为String,先是调用toString函数,有值的话,就直接返回该字符串;如果对象没有toString,那就调用valueOf函数,然后将原始值转为字符串并且返回;如果toString或者valueOf都不能获取原始值,那就抛出类型转换异常;
var arr = [];arr.toString = function () {     console.log('调用了toString()函数');     return [];};arr.valueOf = function () {     console.log('调用了valueOf()函数');     return [];};console.log(String(arr));

在执行String(arr)的时候,是先将数组转为字符串,调用的是toString,它的结果不能转为string;Pp128资讯网——每日最新资讯28at.com

那就调用valueOf函数,它的返回值也是一个空数组,也不能转为字符串,那就只能抛出类型转换异常了。Pp128资讯网——每日最新资讯28at.com

  1. 引用类型在转化为number的时候,首先会判断对象是否含有valueOf函数,如果有,那就调用valueOf函数,把它的返回值转为数字,然后返回;如果没有valueOf函数,就调用toString函数,将返回值转为数字并返回。如果toString或者valueOf都不能获取到原始值的话,那就抛出类型转换异常。

本文链接:http://www.28at.com/showinfo-26-38114-0.html一篇搞懂 toString()函数与valueOf()函数,

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Python中的单例模式,这些你都会吗?

下一篇: 你应该知道的13个最常见的JavaScript字符串方法

标签:
  • 热门焦点
  • 俄罗斯:将审查iPhone等外国公司设备 保数据安全

    iPhone和特斯拉都属于在各自领域领头羊的品牌,推出的产品也也都是数一数二的,但对于一些国家而言,它们的产品可靠性和安全性还是在限制范围内。近日,俄罗斯联邦通信、信息技术
  • 6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    2023年上半年已经正式过去了,我们也迎来了安兔兔V10版本,在新的骁龙8Gen3和天玑9300发布之前,性能榜的榜单大体会以骁龙8Gen2和天玑9200+为主,至于那颗3.36GHz的骁龙8Gen2领先
  • Rust中的高吞吐量流处理

    作者 | Noz编译 | 王瑞平本篇文章主要介绍了Rust中流处理的概念、方法和优化。作者不仅介绍了流处理的基本概念以及Rust中常用的流处理库,还使用这些库实现了一个流处理程序
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • 让我们一起聊聊文件的操作

    文件【1】文件是什么?文件是保存数据的地方,是数据源的一种,比如大家经常使用的word文档、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存数据,它既可以保
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 10天营收超1亿美元,《星铁》比《原神》差在哪?

    来源:伯虎财经作者:陈平安即便你没玩过《原神》,你一定听说过的它的大名。恨它的人把《原神》开服那天称作是中国游戏史上最黑暗的一天,有粉丝因为索尼在PS平台上线《原神》,怒而
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • iQOO Neo8 Pro即将开售:到手价3099元起 安卓性能最强旗舰

    5月23日,iQOO如期举行了新品发布会,全新的iQOO Neo8系列也正式与大家见面,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更
Top