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

关于 JSON.stringify,你不知道的六件事

来源: 责编: 时间:2024-03-25 17:37:01 284观看
导读对于 JSON.stringify 这个方法我相信大家都很熟悉了,一般用来将一个对象或者数组转成字符串,也就是一个 JSON,然后让接口携带并传到后端。但是你真的很了解 JSON.stringify 吗?往下阅读,看你是不是真的了解它~第二个参数传

对于 JSON.stringify 这个方法我相信大家都很熟悉了,一般用来将一个对象或者数组转成字符串,也就是一个 JSON,然后让接口携带并传到后端。uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

但是你真的很了解 JSON.stringify 吗?往下阅读,看你是不是真的了解它~uhg28资讯网——每日最新资讯28at.com

第二个参数传数组Array

JSON.stringify 的第二个参数传数组时,那么它只会转换数组中的 key,比如下面例子中,只会转换 name 属性:uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

第三个参数传数字Number

JSON.stringify 的第三个参数传数字时,这个数字会被当成 JSON 的缩进级别。uhg28资讯网——每日最新资讯28at.com

比如下面例子,分别是2空格、4空格、6空格缩进:uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

第三个参数传字符串String

JSON.stringify 的第三个参数传字符串时,这个字符串会被当成 JSON 的缩进占位符:uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

toJSON

如果被转换的对象中有 toJSON 这个方法的话,那么当JSON.stringify进行转换后,会获取这个toJSON方法的执行返回值:uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

JSON.stringify 局限性

很多人使用 JSON.stringify 来做深拷贝,但是这是万万不行的,因为它是有局限性的:uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

从下面例子可以看出:uhg28资讯网——每日最新资讯28at.com

  • undefined、function、symbol 在转换后直接被忽略了
  • 正则表达式转换成对象,日期转换成字符串
  • NaN、Infinity 直接变成 null

所以千万不要用 JSON.stringify 来做深拷贝!!!得不到满意的结果的!!!uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com

环引用报错

对包含循环引用的对象(对象之间相互引用,形成无限循环)执行此方法,会抛出错误。uhg28资讯网——每日最新资讯28at.com

以前旧版的浏览器和Nodejs是会直接报错的,但是貌似现在新版的不会报错了:uhg28资讯网——每日最新资讯28at.com

uhg28资讯网——每日最新资讯28at.com


uhg28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-79149-0.html关于 JSON.stringify,你不知道的六件事

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

上一篇: Vite 为什么快呢?快在哪?说一下我自己的理解吧

下一篇: 产业人士称尼康正向中国“头部”新能源汽车品牌供应光刻机设备

标签:
  • 热门焦点
  • 天猫精灵Sound Pro体验:智能音箱没有音质?来听听我的

    这几年除了手机作为智能生活终端最主要的核心之外,第二个可以成为中心点的产品是什么?——是智能音箱。 手机在执行命令的时候有两种操作方式,手和智能语音助手,而智能音箱只
  • K6:面向开发人员的现代负载测试工具

    K6 是一个开源负载测试工具,可以轻松编写、运行和分析性能测试。它建立在 Go 和 JavaScript 之上,它被设计为功能强大、可扩展且易于使用。k6 可用于测试各种应用程序,包括 Web
  • K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • 从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 谷歌KDD'23工作:如何提升推荐系统Ranking模型训练稳定性

    谷歌在KDD 2023发表了一篇工作,探索了推荐系统ranking模型的训练稳定性问题,分析了造成训练稳定性存在问题的潜在原因,以及现有的一些提升模型稳定性方法的不足,并提出了一种新
  • 网红炒股不为了赚钱,那就是耍流氓!

    来源:首席商业评论6月26日高调宣布入市,网络名嘴大v胡锡进居然进军了股市。在一次财经媒体峰会上,几个财经圈媒体大佬就“胡锡进炒股是否知道认真报道”展开讨论。有
  • 三星Galaxy Z Fold/Flip 5国行售价曝光 :最低7499元/12999元起

    据官方此前宣布,三星将于7月26日也就是明天在韩国首尔举办Unpacked活动,届时将带来带来包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • 微软发布Windows 11新版 引入全新任务栏状态

    近日,微软发布了Windows 11新版,而Build 22563更新主要引入了几周前曝光的平板模式任务栏等,系统更流畅了。更新中,Windows 11加入了专门针对平板优化的任务栏
  • 电博会与软博会实现"线下+云端"的双线融合

    在本次“电博会”与“软博会”双展会利好条件的加持下,既可以发挥展会拉动人流、信息流、资金流实现快速交互流动的作用,继而推动区域经济良性发展;又可以聚
Top