问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

实例解析JS布尔对象的toString()方法和valueOf()方法

发布网友 发布时间:2022-04-26 14:53

我来回答

2个回答

懂视网 时间:2022-05-14 16:17

本篇文章给大家带来的内容是关于JavaScript对象序列化、toString()与valueOf()的用法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

序列化

JSON.stringify()处理对象

let obj = {
  val: undefined,
  a: NaN,
  b: Infinity,
  c: new Date(),
  d: { e: 'nice' },
  y: Object
  }
console.log(JSON.stringify(obj)) 
//
输出 "{ "a": null, "b": null, "c": "2019-03-13T12:01:44.295Z", "d": "{ "e": "nice" }" }"

当对象的value为undefined和Object时会被忽略,为NaN和Infinity为null,对象实例如d,为key和value都加上双引号

JSON.stringify()处理数组

let arr = [undefined, Object, Symbol(""), { e: 'nice' }]
console.log(JSON.stringify(arr)) 
//
输出 "[null, null, null, { "e": "nice" }]"

自定义序列化

可以重写toJSON()方法进行自定义序列化

let obj = {
  x: 1,
  y: 2,
  re: {
   re1: 1,
   re2: 2,
   toJSON: function(){
   return this.re1 + this.re2;
   } 
  }
  }
console.log(JSON.stringify(obj))
//
输出 "{ "x":1, "y":2, "re":3 }"

对象的toSting()

let obj = { x:1, y:2 }
console.log(obj.toString()) //
输出 "[object Object]" obj.toString = function(){ return this.x + this.y; } "Result" + obj; //输出 "Result3" 调用了toString +obj; //输出 "3" 调用了toString obj.valueOf = function(){ return this.x + this.y + 100; } "Result" + obj; //输出 "Result103" 调用了toString

当toString和valueOf都存在时,在进行操作时,都会尝试转换成基本类型,先找valueOf,如果返回基本类型,这只调用valueOf,如果不是,比如是对象的话,就去找toString,如果也返回Object,就会报错

热心网友 时间:2022-05-14 13:25

toString()
方法
把布尔值转换为字符串,并返回结果。
实例
将布尔值转换为字符串:
var
bool
=
new
Boolean(1);
var
myvar
=
bool.toString();
输出结果:
true
定义和用法
toString()
方法可把一个逻辑值转换为字符串,并返回结果。
注意:当需要把Boolean对象转换成字符串的情况JavaScript会自动调用此方法。
语法
boolean.toString()
返回值
"true"
或者
"false"
valueOf()
方法
返回
Boolean
对象的原始值。
实例
var
bool
=
new
Boolean(0);
var
myvar
=
bool.valueOf();
输出结果:
false
语法
boolean.valueOf()
返回值
"true"
或者
"false"
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
最近有什么股票在上市 最近上市的股票都有哪些? 新房没有拿到钥匙,需要交物业费吗 没有接房会不会交物管费 whu是哪个国家 对市场营销工作的认识 夏至诗词五首推荐(一陂野葛花如雪,夏至江村正好嬉) 夫妻多久不同居可以离婚 贷款留手机服务密码了,会打手机里的人吗 ...1级 2级 3级 …… 对应 都能捕捉什么宠物? 具体位置在哪?_百度知 ... javascript布尔类型变量的问题 JavaScript里面布尔型有几个值? 有关JS 的布尔类型 oppoak5值得入手吗? 北京市失能老人补贴取消后怎么申请 失能老人补贴政策有什么? 会计表格怎么自动求和 什么条件可以申请失能补助 电脑配置请高手指点是新机还是二手货?怎么判断? 如何区别新机和二手笔记本? 梦见女儿被蛇咬了我去吸毒嘴巴多是血 梦到儿子被蛇咬了舌头差点死掉,去了医院被救活 梦见被蛇咬死是凶是吉 梦见儿子在河里被蛇咬死后又复活 梦见我在森林看见儿子被蛇咬死了 有哪些表达对“春天”的赞美的好句子? 赞美有福气人的句子有哪些? 表示赞美的句子有哪些? 表示赞美的句子 赞美普通平凡却美的句子有哪些? javascript是关于什么的?有什么用啊? javascript 中 boolean是什么类型 关于javascriptif(变量)布尔值的运用,点击按钮根据boolean改变div当前... javascript的基础数据类型是什么,都有什么用? 关于javascript中boolean型值的纠结问题!!! javascript中的数据类型应该怎么理解? 索尼a6000屏幕尺寸是多少谁清楚 华为p30pro和索尼a6000哪个拍照更好,买了华为还需要相机吗 索尼a6ooo是不是全画幅相机 哪个时间是K5的上市停产时间呢? 索尼a6000是微单吗 Sony/索尼 ILCE-6000L单机身 索尼A6000怎么样 SONY微单A6000和A7的EVF取景器屏幕尺寸一样大吗 a6000索尼一次只能删一张照片? 索尼alpha5000和6000的区别是什么? 怎样用石膏粉做豆腐脑 做豆腐脑水和黄豆的比例,石膏放多少 卖的豆腐脑怎么做 上海市市长应勇:推动在上海证券交易所设立科创板并试点注册制 荣耀30和OPPOReno4买哪个好啊?