tostring 和 valueOf 函数是解决值的显示和运算的问题。所有的 Object 类型的数据都自带 toString 和 valueOf 函数。
比如我们定一个 Object 类型数据:
const obj = { name: "duxin"}console.log(obj.valueOf()); // { name: 'duxin' }
toString 函数的作用是把一个逻辑转换为字符串,并且返回 Object 类型数据的 toString()默认的返回值"[object Object]"。
如果我们在定义对象的时候,可以重写 tosString 函数,这样 toString 的返回值可读性会更好一些,比如:
const obj = { name: "duxin", toString:function(){ return this.name; }}console.log(obj.valueOf()); // { name: 'duxin' }console.log(obj.toString()); // duxin
以下这些函数都是有自定义的 toString 函数:
valueOf 函数返回引用类型的原始值,如果没有原始值,就返回"{}",就是空对象的字面量。
在发生数据类型转换的时候,有liang两种场景:
var arr = [];arr.toString = function () { console.log('调用了toString()函数'); return [];};arr.valueOf = function () { console.log('调用了valueOf()函数'); return [];};console.log(String(arr));
在执行String(arr)的时候,是先将数组转为字符串,调用的是toString,它的结果不能转为string;
那就调用valueOf函数,它的返回值也是一个空数组,也不能转为字符串,那就只能抛出类型转换异常了。
本文链接:http://www.28at.com/showinfo-26-38114-0.html一篇搞懂 toString()函数与valueOf()函数,
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com
上一篇: Python中的单例模式,这些你都会吗?