当前位置: 首页 > news >正文

Json实现深拷贝的缺点

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

        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对象,则序列化的结果将只得到空对象;

        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丢失;


        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

http://www.dtcms.com/a/70832.html

相关文章:

  • 2.5 python接口编程
  • Java File 类详解
  • Wireshark 抓包全解析:从数据捕获到报文分析
  • 2024年12月CCF-GESP编程能力等级认证C++编程二级真题解析
  • 深入探索人工智能(AI):分类、应用与案例分析
  • 基于模态特定因子的高效低秩多模态融合方法解析
  • 基于Python的天气预报数据可视化分析系统-Flask+html
  • python从邮件中提取链接中的符号为什么会变成amp; 解决办法
  • 华为手机助手输入连接码时光标乱跳
  • 本地部署Spark集群
  • Markdig:强大的 .NET Markdown 解析器详解
  • 003_快乐数
  • Axios介绍(前端开发处理网络请求首选工具,基于Promise HTTP客户端,可以在浏览器和Node.js环境使用)(Axios库)
  • Java 综合实战项目:生成不重复随机字符串数组
  • 深度学习 Deep Learning 第2章 线性代数
  • 2024年12月CCF-GESP编程能力等级认证C++编程五级真题解析
  • 理解进程间通信
  • ANSYS Swan 条件激活与重置操作符教程
  • 目标在哪里?——寻找人生的意义与方向
  • 【虚幻C++笔记】引擎源码下载及编译步骤
  • Kubernetes之ETCD
  • 即插即用模块--KANLinear
  • c++的static和java的有何不同和联系
  • pywinauto自动安装python和java
  • 小程序配置
  • 企业数据管理的成本与效率革命
  • 社区版Uos20.9从源码编译QT5.15.2
  • 阿里云企业邮箱出现故障怎么处理?
  • 算法日记40:最长上升子序列LIS(单调栈优化)n*log^n
  • 如何通过Odoo 18采购模块优化管理供应商价格表