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

相关推荐
三小河几秒前
VS Code 集成 claude-code 教程:告别海外限制,无缝对接国内大模型
前端·程序员
jerrywus5 分钟前
前端老哥的救命稻草:用 Obsidian 搞定 Claude Code 的「金鱼记忆」
前端·agent·claude
球球pick小樱花10 分钟前
游戏官网前端工具库:海内外案例解析
前端·javascript·css
用户605723748730818 分钟前
AI 编码助手的规范驱动开发 - OpenSpec 初探
前端·后端·程序员
狗胜21 分钟前
AI观察日记 2026-03-02|CLAUDE、TYPE、APPFUNCTIONS:掘金热门里的下一步信号
前端
喝水的长颈鹿22 分钟前
【大白话前端 02】网页从解析到绘制的全流程
前端·javascript
明君8799724 分钟前
Flutter 实现 AI 聊天页面 —— 记一次 Markdown 数学公式显示的踩坑之旅
前端·flutter
用户145369814587826 分钟前
VersionCheck.js - 让前端版本更新变得简单优雅
前端·javascript
米饭同学i26 分钟前
微信小程序实现随机撒花效果
前端
Arthur147261228654727 分钟前
模块化和组件化的区别
前端