JSON.stringify使用需注意
1、使用场景
(1)判断对象/数组值是否相等

(2)localStorage/sessionStorage 存储对象,因为本地存储要求存储的数据类型是字符串,但是开发中我更喜欢用插件storejs,更方便好用

(3)对象深拷贝,序列化引用类型的数据,会将数据转换为字符串,所以属于深拷贝

(4)url传参数
在开发过程中常常会遇到一个项目通过iframe标签嵌套在另一个门户内的 场景,不可避免的会进行url地址进行传参数
2、语法使用
(1)直接使用JSON.stringify对引用类型的数据进行序列化,再使用JSON.parse对序列化后的数据还原
(2)JSON.stringify第二个参数的使用

3、使用时需注意
(1)属性值为Infinity,NaN 的序列化后会变成了 null
(2)被序列化的对象的属性存在toJSON方法的,会被toJSON方法内返回的值覆盖

(3)如果被序列化的对象是数组,则数组内的undefined,Object,Symbol("")值会被转换为null

(4)如果被序列化的对象是对象,则对象内的属性值为undefined,Object,Symbol("")值的键值对会被直接筛除掉,不会出现在最终的结果中
(5)对象里面包含对象的在被序列化的时候会报错
(6)所有用symbol作为属性键的项会在序列化时直接被忽略
(7)不可枚举的属性值会在序列化时被直接忽略
浙公网安备 33010602011771号