关于JSON.parse(JSON.stringify())

来源:4-3 手写 JS 深拷贝

chyco

2021-07-27

老师,我看第一遍的时候视频的时候忘记在哪个章节问过您一样的问题。当时您给我答案是,“JSON.parse(JSON.stringify())属于奇技淫巧”。现在是我第二次刷视频,这里还是有点疑惑。工作当中很多同事都是用JSON.parse(JSON.stringify())去做深拷贝的,做代码评审的时候也没同事有指出JSON.parse(JSON.stringify())做深拷贝的不科学之处,我想提出来它做深拷贝不好的,知其然不知其所以然,不敢提出来。在实际项目中,极少在json有函数,正则…所以说JSON.parse(JSON.stringify())和手写深拷贝的结果是一样的。我想老师解惑一下JSON.parse(JSON.stringify())做深拷贝的不合理之处主要体现在那方面,例如是性能方面不好还是还有其他的方面。

写回答

2回答

黑兔_

2022-01-09

原来如此 我之前有个同事 传的Date 日期类型 JSON 转完以后类型就被过滤掉了 

0
1
慕斯3224979
值为undefined的转换后类型也变了
2022-10-18
共1条回复

双越

2021-07-27

const obj = { a: new Map() }
JSON.parse(JSON.stringify(obj))

这样就不行了。Map 就没了

0
4
双越
回复
追风之神
对呀,那就是转换前后数据类型不一致了,这不符合要求。
2021-08-07
共4条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程