JSON.stringify()
将对象序列化为 JSON 字符串
📌注意:
JSON.stringify
在遇到undefined
、function
、symbol
时会自动将其忽略JSON.stringify(undefined) // undefined
JSON.stringify(function() {}) // undefined
JSON.stringify(Symbol()) // undefined
在数组中则会返回
null
(以保证单元位置不变)JSON.stringify([1,undefined, function() {}, Symbol(), 'str', true])
// "[1,null,null,null,"str",true]"
JSON.parse()
将 JSON 数据解析为 js 对象
利用JSON.parse(JSON.stringify(obj))
完成深拷贝
// 源对象的属性 b 指向的是一个对象,属于引用类型
const source = { a: 0 , b: { c: 0}};
const target = JSON.parse(JSON.stringify(source));
// 深拷贝后,修改源对象的属性 b, 目标对象不受影响
source.a = 4;
source.b.c = 4;
console.log(JSON.stringify(target)); // { a: 0, b: { c: 0}}