toString()函数与valueOf()函数

ICode竞赛Python一级通关秘籍:用for循环和变量控制飞船与Dev的移动(附完整代码解析) 本文详细解析了ICode竞赛Python一级中for循环和变量的关键应用,通过控制飞船(Spaceship)和开发者角色(Dev)的移动任务,帮助初学者掌握代码逻辑。文章包含完整代码解析、常见误区分析和调试技巧,是通关ICode竞赛的实用指南。 阅读详情

Python微信订餐小程序课程视频

https://blog.youkuaiyun.com/m0_56069948/article/details/122285951

Python实战量化交易理财系统

https://blog.youkuaiyun.com/m0_56069948/article/details/122285941

一、👀前言

在等于运算符中,如果比较的内容包含对象类型数据,则会涉及隐式转换,那么就会调用toString()函数和valueOf()函数,下面我们将会了解到关于这两个函数的基本概念和使用场景。


二、toString() 函数

toString() 函数的作用是把一个逻辑值转换为字符串,并返回结果。

console.log((1).toString());//1
console.log((10).toString(2))//1010
console.log(("1").toString());//1
console.log((false).toString());//false
console.log(({p:1}).toString());//[object,object]
console.log((undefined).toString());//报错
console.log((null).toString());//报错
console.log((function(){}).toString());//function(){}
console.log([1,2,3,4].toString());//1,2,3,4
console.log((new Date()).toString())//Fri Jul 03 2020 17:20:11 GMT+0800 (中国标准时间)

在JavaScript中,Object,Array,Function,Date等类型都实现了自定义的toString()函数。

  • Object 类型数据的 toString() 函数默认的返回结果是 “[object Object]”,当我们自定义新的类时,可以重写 toString() 函数,返回可读性更高的结果。
  • Array 的 toString() 函数返回值为以逗号分隔构成的数组成员字符串。数组也是对象,那么为什么数组返回的是对应的字符串而不是对象,其实数组覆盖了Object.toString方法,然后将连接数组并返回一个字符串,其中包含用逗号分隔的每个数组元素(相当于Array.join())
  • Function 的 toString() 函数返回值为函数的文本定义
  • Date 的 toString() 函数返回值为具有可读性的时间字符串

三、valueOf()函数

valueOf() 函数的作用是返回最适合引用类型的原始值,如果没有原始值,则会返回引用类型自身。

console.log((1).valueOf());//1
console.log((10).valueOf(2))//报错
console.log(("1").valueOf());//1
console.log((false).valueOf());//false
console.log(({p:1}).valueOf());//{p:1}
console.log((undefined).valueOf());//报错
console.log((null).valueOf());//报错
console.log((function(){}).valueOf());//function(){}
console.log([1,2,3,4].valueOf());//[1,2,3,4]
console.log((new Date()).valueOf());//1593767848260

  • Object 类型数据的valueOf()函数默认的返回结果是"{}",即一个空的对象字面量。
  • Array 的valueOf()函数返回的是数组本身
  • function 的valueOf()函数返回的是函数本身
  • Date 的valueOf()函数返回的是指定日期的时间戳

小结:
  • toString() 返回的是字符串,而 valueOf() 返回的是原始值,没有原始值返回对象本身
  • undefined 和 null 都没有 toString() 和 valueOf() 方法
  • Date 类型的 toString() 返回的表示时间的字符串;valueOf() 返回的是现在到1970年1月1日的毫秒数(时间戳)
  • Number 类型的 toString() 方法可以接收转换基数,返回不同进制的字符串形式的数值;而 valueOf()方 法无法接受转换基数

四、特殊情况

如果一个引用类型的值既存在 toString() 函数又存在 valueOf() 函数,那么在做隐式转换时,会调用哪个函数呢?这里我们可以概括成两种场景,分别是引用类型转换为 String 类型,以及引用类型转换为 Number 类型。

1、引用类型转换为 String 类型

一个引用类型的数据在转换为 String 类型时,一般是用于数据展示,转换时遵循以下规则:

  • 如果对象具有 toString() 函数,则会优先调用 toString() 函数。如果它返回的是一个原始值,则会直接将这个原始值转换为字符串表示,并返回该字符串。
  • 反之,则会再去调用 valueOf() 函数,如果 valueOf() 函数返回的结果是一个原始值,则会将这个结果转换为字符串表示,并返回该字符串。
  • 如果通过 toString() 函数或者 valueOf() 函数都无法获得一个原始值,则会直接抛出类型转换异常。

2、引用类型转换为 Number 类型

一个引用类型的数据在转换为 Number 类型时,一般是用于数据运算,转换时遵循以下规则:

  • 如果对象具有 valueOf() 函数,则会优先调用 valueOf() 函数,如果 valueOf() 函数返回一个原始值,则会直接将这个原始值转换为数字表示,并返回该数字。
  • 反之,则会再去调用 toString() 函数,如果 toString() 函数返回的结果是一个原始值,则会将这个结果转换为数字表示,并返回该数字。
  • 如果通过 toString() 函数或者 valueOf() 函数都无法获得一个原始值,则会直接抛出类型转换异常。

C++ std::to_string c++ to_string() 函数的主要作用是将数字转换为字符串。to_string() 函数定义在标头 ,因此在使用 to_string() 函数之前需要包含此头文件。 阅读详情

相关推荐

深入理解toString()和valueOf()函数

1.我们为什么要了解这两种方法     总所周知,toString()函数和valueOf函数,这两个函数是Object类的对象生来就拥有的,而且他们还可以允许我们重写,那么,这两个函数到底有什么用呢?  从名称上判断,toString()将对象转换为字符串,valueOf将对象转化为值.那么问题来了:什么时候需要将对象转换为值,又什么时候需要将对象转换为字符串呢?------这是我们

shaofei63的专栏 3158

python str与repr以及toString()

python里头要转成字符串的方式,很多。比较常用的是str和repr。 今天之前,笔者一直认为python没有类似于 java对象中的tostring()方法。但是发现原来toString()方法是部分的类的实例才有。 比如: 那么python里头我们能不能自己实现类似于 java对象中的tostring()方法呢?答案是肯定的。 1、知识点学习 str函数与print函数会调...

wltsysterm的博客 1万+

【前端精进之路】JS篇:第1期 数据类型总结_function 的 tostring() 函数返回值为函数的文本定义(1)

对除了Date类型以外的引用类型数据转换为原生数据类型时,

2401_84184638的博客 610

toString()方法

toString()

qq_48691693的博客 2717

【Java基础知识 7】toString()、String.valueOf、(String)强转

一、前言 相信大家在日常开发中这三种方法用到的应该很多,尤其是前两种,经常在开发的时候,随心所欲,想用哪个用哪个,既然存在,那就应该有它存在的道理,那么什么情况下用哪个呢? 二、代码实例 1、基本类型 (1)基本类型没有toString()方法 (2)推荐使用 (3)无法强转 (String)是标准的类型转换,将Object类型转为String类型,使用(String)强转时,最好使用instanceof做一个类型检查,以判断是否可以进行强转,否则容易抛出ClassCas...

学Java,找哪吒 2万+

手把手教你用Siemens EDA破解工具搞定PADs VX2.7安装与卡死问题

本文详细介绍了如何使用Siemens EDA工具解决PADs VX2.7的安装与卡死问题。从License配置到性能调优,提供全面的解决方案,帮助工程师高效完成电子设计自动化任务。特别针对常见的卡顿现象,给出了输入法兼容性调整、图形性能优化等实用技巧。

k8l9m0n的博客 556

JavaScript的toString()和valueOf()函数

toString():返回当前对象的字符串形式。 该方法属于Object对象,但JavaScript的许多内置对象都重写了该函数,以实现更适合自身的功能需要。 Array.toString(): 将数组的每个元素转换成字符串(通过调用元素自身的toString方法),并依次连接起来,用逗号拼接并返回。 var arr = [1, 'a', ['b', 'c'], 2, {d: 'e'}] arr....

weixin_34357436的博客 184

ubuntu安装hodoop详细步骤

进入到Ubuntu系统中打开桌面,点击鼠标右键打开终端,在终端中输入如下命令这样就可以创建一名为hadoop的新用户。给用户输设置密码输入,输入如下命令,设置密码,按提示输入两次然后为hadoop用户增加管理员全新,这样就可以方便部署完成之后输入重启命令,重启一下Ubuntu系统,然后登录到我们创建的hadoop用户上面reboot。

2301_77603488的博客 9199

toString()与valueOf()函数

所有引用类型都拥有这两个函数,解决值的显示和运算问题。

Poggie的博客 514

结合 Conda 手动安装 RepeatMasker

RepeatMasker 是一个广泛使用的生物信息学工具,用于识别和屏蔽(mask)基因组序列中的 重复序列(repeats) 。在使用过程中需要调用重复序列数据库(Repbase 和 Dfam),如果使用Conda安装的话会出现许多问题,因此推荐手动安装。在此记录我手动安装RepeatMasker的流程,希望对各位同学有所帮助。

m0_65437087的博客 2537

如何下载era5数据?(两种方式)

供水利大数据云计算课程同学参考使用#

Camiel_sweet的博客 1万+

javascript之toString()和valueOf()函数

javascript之toString()和valueOf()函数 1.我们为什么要了解这两种方法 众所周知,toString()函数和valueOf函数,这两个函数是Object类的对象生来就拥有的,而且他们还可以允许我们重写,那么,这两个函数到底有什么用呢?  从名称上判断,toString()将对象转换为字符串,valueOf...

weixin_30367873的博客 92

从 0 到 1 构建 Graph RAG 系统:本地图谱 + 通义千问落地实践

本文介绍了一个基于知识图谱的检索增强生成系统(Graph RAG),该系统结合领域知识图谱、语义检索和大模型问答,旨在提供结构化、精准的技术问答服务。文章详细说明了项目背景、目标、核心技术架构以及实现方法,包括本地图谱构建、Neo4j数据库接入、语义检索和大模型集成等关键环节。该系统支持混合检索、多轮问答和知识图谱关联理解,能够有效减少大模型幻觉,提升问答的准确性和可解释性。文中还展示了核心代码结构和流程图,呈现了从文档加载到图谱构建再到问答生成的完整流程。该系统适用于需要处理复杂领域知识的研发和数据分析场

m0_58378112的博客 1403

toString()和valueOf()函数调用和优先级

最近水群的时候看见了一个题目: add(2)(3)(4); 简单了说就是链式调用,链式调用的方法有很多,jQuery的,underscore的和lodash这三个库采用了不同的方式。而上面这个就简单多了: function add(x) { var sum = x; var tmp = function (y) { sum = sum + y; return ...

wade3po的博客 4890

作为一名爬虫人如何实现千万级数据爬取?

爬虫门槛不高,高就高在往后余生的每一次实操都随时会让你崩溃!Bro

吴秋霖的博客 1万+

【华为OD机试真题 2025双机位A卷】958、 高效的任务规划 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 2025双机位A卷】958、 高效的任务规划 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,

KJ.JK 1077

Javascript标准内置对象Boolean研究_基本介绍_Boolean构造函数_toString()实例方法_valueOf()实例方法

true和false。这是最基本的逻辑值,用于控制程序的执行流程,例如条件判断、循环等。} else {除了基本的布尔类型外,JavaScript还提供了Boolean对象。Boolean对象是Boolean类型的包装对象,用于在需要对象的场景中表示布尔值。// 输出: "object"Boolean构造函数用于创建一个新的Boolean对象。它可以作为构造函数使用(使用new关键字),也可以作为普通函数调用。toString()方法返回表示指定布尔对象的字符串。valueOf()方法返回。

qq_33546823的博客 1320

海思3403烧结、复用及mic输入

3403调试的第一步是版本烧结,版本烧结经常遇到问题,本文记录总结遇到的各种问题。

平面到立体 1357

函数 tostring_js中类型知识和valueOf()和toString()方法

前言:在Javascript这门语言中有两个比较重要的方法。毫不夸张的说,前端小伙伴天天在用他们。熟悉Javascript这门语言的小伙伴肯定知道Javascript中两个非常重要的概念:原型和原型链。valueOf和toString两个方法便是定义在Object原型对象身上的两个方法。先来打印一下这个对象:console.log(Object.prototype)这就意味着,在Javascrip...

weixin_39611161的博客 146

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

js 中toString,valueOf(),new String(),String()以及new 函数(),和不new的区别

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> //toString 和v

茗茗 1002

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

toString()方法详解

在类型转换中,经常用到方法valueOf()和toString(),上一篇讲了valueOf()方法,这一篇来说说toString()方法。toSting()方法返回返回对象的字符串表现。 【1】基本包装类型——Boolean型 var obj = new Boolean(true); console.log(obj.toString());//"true" console.log(typeof obj.toString());//string //如果是包装类型的基本类型,则返.

m0_46080566的博客 4579

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

js中Boolean对象。valueOf.toString().

JS中Boolean对象(true or false) 创建方法:new Boolean(value) //构造函数; Boolean(value)//转换函数 对象属性: constructor:返回对创建此对象的Boolean函数的引用. prototype:有能力对该对象进行添加属性和方法。 示例: var res = new Boolean(1);结果:返回的是一个对象。并不是一个布尔值 var res = new Boolean("false");结果:返...

qq1149091238的博客 210

搞懂toString()与valueOf()的区别

一、toString() 作用:toString()方法返回一个表示改对象的字符串,如果是对象会返回,toString() 返回 “[object type]”,其中type是对象类型。 二、valueOf( ) 作用:valueOf房啊发返回指定对象的原始值,JS会利用valueOf() 方法用来把对象转换成原始类型的值(数值、字符串和布尔值) Test 1、JS Arra...

努力学习的肥宅 335
上一篇: 使用pip管理库
下一篇: Vue+element搭建后台管理系统-二、安装插件
pythonxxoo
博客等级 码龄5年 337粉丝 670原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值