Json实现深拷贝的缺点

1、如果被拷贝对象中的属性有时间对象的话,拷贝出来会为字符串,将不再是对象

javascript 复制代码
        var test = {
            name: 'a',
            date: [new Date(1536627600000), new Date(1540047600000)],
        };
        console.log(test)
        console.log(JSON.parse(JSON.stringify(test)));

2、如果obj里有RegExp(正则表达式的缩写)、Error对象,则序列化的结果将只得到空对象;

javascript 复制代码
        const test = {
            name: 'a',
            date: new RegExp('\\w+'),
        };
        const copyed = JSON.parse(JSON.stringify(test));
        test.name = 'test'
        //console.error('ddd', test, copyed);
        console.log(test);
        console.log(copyed);

3、如果obj里有函数、undefined,则序列化的结果会把函数或 undefined丢失;

javascript 复制代码
        const test = {
            name: 'a',
            date: function hehe() {
                console.log('fff')
            },
            b:undefined
        };
        // debugger
        const copyed = JSON.parse(JSON.stringify(test));
        test.name = 'test'
        console.log('ddd', test, copyed);

4、如果obj里有NaN、Infinity和-Infinity,则序列化的结果会变成null

相关推荐
橙子家1 小时前
浏览器缓存之【基础键值存储】:Local storage 和 Session storage
前端
星星在线3 小时前
MusicFree:一个「All in One」的个人音乐服务器,让听歌回归简单
前端·后端
IT_陈寒4 小时前
Redis的SETNX并发问题让我加了三天班
前端·人工智能·后端
demo007x4 小时前
Docling 文档转换以及技术架构分析
前端·后端·程序员
京东云开发者5 小时前
京东市民服务又“上新”!这次是黑龙江“龙易办”
前端
袋鱼不重6 小时前
我的神奇同事,AI 用多了居然写了个 Open In Codex
前端·后端·ai编程
竹林8186 小时前
Web3表单签名验证:我用 wagmi 和 ethers 给 DApp 加了一个“免密登录”,踩坑记录全在这了
javascript
用户6990304848756 小时前
try catch使用场景 处理同步代码错误兼容用的
javascript·uni-app
雪碧聊技术6 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
Fireworks6 小时前
深入vue3源码解读 -- 1、响应式的基础概念
前端