前端如何避免JSON.stringify深拷贝的潜在陷阱?
- 内容介绍
- 相关推荐
本文共计739个文字,预计阅读时间需要3分钟。
目录+时间类型转换为字符串类型数据+undefined和function直接丢失+变成null+当对象循环引用时+--会报错+总结+时间类型转换为字符串类型数据+当对象中有时间类型的元素时----时间类型会变成字符串
目录
- 时间类型变成字符串类型数据
- undefined和function直接丢失
- 变成null
- 当对象循环引用的时候 --会报错
- 总结
时间类型变成字符串类型数据
当对象中有时间类型的元素时候-----时间类型会被变成字符串类型数据
const obj = { date:new Date() } typeof obj.date === 'object' //true const objCopy = JSON.parse(JSON.stringify(obj)); typeof objCopy.date === string; //true
然后你就会惊讶的发现,getTime()调不了了,getYearFull()也调不了了。就所有时间类型的内置方法都调不动了。
但,string类型的内置方法全能调了。
本文共计739个文字,预计阅读时间需要3分钟。
目录+时间类型转换为字符串类型数据+undefined和function直接丢失+变成null+当对象循环引用时+--会报错+总结+时间类型转换为字符串类型数据+当对象中有时间类型的元素时----时间类型会变成字符串
目录
- 时间类型变成字符串类型数据
- undefined和function直接丢失
- 变成null
- 当对象循环引用的时候 --会报错
- 总结
时间类型变成字符串类型数据
当对象中有时间类型的元素时候-----时间类型会被变成字符串类型数据
const obj = { date:new Date() } typeof obj.date === 'object' //true const objCopy = JSON.parse(JSON.stringify(obj)); typeof objCopy.date === string; //true
然后你就会惊讶的发现,getTime()调不了了,getYearFull()也调不了了。就所有时间类型的内置方法都调不动了。
但,string类型的内置方法全能调了。

