json.parse(json.stringify)的弊端

json.parse(json.stringify)的弊端使用JS0N.parse(JS0W.stringify())进行深拷贝对象时,存在一些弊端:

1.无法拷贝值为 umdefined的属性:在序列化(stringiy)阶段,如果对象中某个属性的值为 umdefined,那么这个属性会被忽略,不会出现在生成的 JSON 字符串中。因此在反序列化(parse)阶段,这个属性就不会被还原。

2.无法拷贝函数:在序列化阶段,如果对象中包含函数,这些函数会被忽略,不会出现在生成的 JSON 字符串中。因此在反序列化阶段,这个函数不会被还原。3.NaN、无穷大、无穷小被转为 nu11:在序列化阶段,特殊值如 NaN、无穷大、无穷小会被转换为 nul1。在反序列化阶段,这些值会被还原为原始的特殊值。无法获取原型上的方法、属性:这个方法只能获取到 Obiect 原型的内容,无法获取到实例原型上的方法或属性。这意味着如果对象是从某个构造函数实例化出来的,并且该构造函数在原型上定义了方法或属性,这些方法或属性不会被TS0N.parse(TSON.stringify())正确拷贝。

。Date 对象转变为 Date 字符串:在序列化阶段,Date 对象会被转换为 IS0 格式的日期字符串。在反序列化阶段,这个日期字符串会被转换回 Date 对象,但任何时区或童秒级别的信息可能会丢失。

总结来说,JS0N.parse(JS0N.stringify())无法正确拷贝值为 undefined 的属性、函数特殊值(NaN、无穷大、无穷小),以及无法拷贝原型上的方法、属性。此外,Date 对象在拷贝过程中可能会丢失一些信息。

相关推荐
超级土豆粉4 分钟前
Turndown.js: 优雅地将 HTML 转换为 Markdown
开发语言·javascript·html
秃了也弱了。11 分钟前
Chrome谷歌浏览器插件ModHeader,修改请求头,开发神器
前端·chrome
乆夨(jiuze)31 分钟前
记录H5内嵌到flutter App的一个问题,引发后面使用fastClick,引发后面input输入框单击无效问题。。。
前端·javascript·vue.js
忧郁的蛋~1 小时前
HTML表格导出为Excel文件的实现方案
前端·html·excel
小彭努力中1 小时前
141.在 Vue 3 中使用 OpenLayers Link 交互:把地图中心点 / 缩放级别 / 旋转角度实时写进 URL,并同步解析显示
前端·javascript·vue.js·交互
然我1 小时前
别再只用 base64!HTML5 的 Blob 才是二进制处理的王者,面试常考
前端·面试·html
NanLing1 小时前
【纯前端推理】纯端侧 AI 对象检测:用浏览器就能跑的深度学习模型
前端
呆呆的心1 小时前
前端必学:从盒模型到定位,一篇搞定页面布局核心 🧩
前端·css
小飞悟1 小时前
前端高手才知道的秘密:Blob 居然这么强大!
前端·javascript·html
小old弟1 小时前
用Sass循环实现炫彩文字跑马灯效果
前端