文章来源于昨日面试的一个问题,你觉得JSON.parse(JSON.stringify(xx))完结深复制有什么问题?或许说有什么不适用的场景?
当时答复假定包含函数,则不适用。现在答复感觉low爆。不知其所以然等于不知数组去重

1.首要咱们了解一json字符串下什么是JSON?

JSON::测验纸怎么看是否怀孕JavaScript Object Notation,是一种轻量级的数据交互格局。它基于 ECMAScjavascript数据类型ript (欧洲计算机协会拟定的js标准)的一javascript个子集,选用彻底独立于编程言语的面试自我介绍一分钟文本格局来存储和标明数据。(彻底来源于百度,在我眼里数组词其实便是一个字符串,只不过是有数组指针特别标明的字符串)
JSON支撑的语法:
1.简略值数组c语言:字符串,数值数组去重,布尔值,null(特别留心:不支撑undef测验工程师ined)
2.方json格局针:支撑有序键值对,每个值可所以杂乱类型也可所以简略值
3.数组:数组值javascript基础知识总结可所以任意类型,包含简略值,政策,乃至javascript高级程序设计其它数组。
JSON没有变量,函数或许方JavaScript针实例的概念。。。javascript菜鸟教程

2.序列化(JSON.stringify)

规矩:
在序列化js政策时,悉数函数和原型数组成员都会有意的在效果中省掉。
此外,值为undef面试自告奋勇一分钟ined的任何特征也会被越过。毕竟比及的便是悉数数组实例特征均为有用JSON数据类型的标明。
(留心:假定日期格局运用JSON.stringify后会变成字符串测验抑郁程度的问卷,J面试SON.par测验纸怎么看是否怀孕se后也是字符串)
直接放测试图吧:

你懂JSON.parse(JSON.stringify(obj))吗???

上面javascript高级程序设计的两点其实现已足以抵御昨日的JSON面试题了,可是咱们可以表现更优异

3.JSO数组公式N.sjsonptringify扩展

JSON.stringify()其数组javascript数据类型实可以接受数组和链表的区别三个参数,除了需求转化的js政策,还额外支撑两个参数,
第一个用于参数的过滤,支撑数组和政策。假定数组词是数组,标明指定回来当时政策的特征,假定是函数标明对当时政策的悉数特征(包含子政策的特征)需求进行过滤.(第二个参数建议自己查验)
eg:

你懂JSON.parse(JSON.stringify(obj))吗???

你懂JSON.parse(JSON.stringify(obj))吗???

4.JSON.parse()扩展

JSON.parse也可以接javascript菜鸟教程受一个额外参数进行扩展,即将javascript数据类型进行转化为javascript高级程序设计js政策的JSON格局进行过滤转化。
对上面的b政策加个bijavascript菜鸟教程rthday特征json解析进行过滤eg:

你懂JSON.parse(JSON.stringify(obj))吗???