JSON.stringify优缺点

缺点:

  1. 时间对象将变为字符串的形式
  2. RegExp(正则表达式的缩写)、Error对象,则序列化的结果将只得到空对象
  3. 函数、undefined,则序列化的结果会把函数或 undefined丢失
  4. NaN、Infinity和-Infinity,则序列化的结果会变成null
  5. 只能序列化对象的可枚举的自有属性,如new对象,会丢弃对象的constructor

优点:

  1. 判断数组是否包含某对象,或者判断对象是否相等
let data = [
{name:'echo'},
{name:'听风是风'},
{name:'11'},
],
val = {name:'11'};
console.log(JSON.stringify(data).indexOf(JSON.stringify(val)) !== -1);
console.log(data.indexOf(val) !== -1)
//因为数组和对象是引用值不能比较,所以需要序列化一下转成字符串
  1. 判断两数组/对象是否相等
let a = [1,2,3],
b = [1,2,3];
JSON.stringify(a) === JSON.stringify(b);//true

JSON.stringify()与toString()这两者虽然都可以将目标值转为字符串,但本质上还是有区别的,比如

let arr = [1,2,3];
console.log(JSON.stringify(arr));//'[1,2,3]'
console.log(arr.toString());//1,2,3
// 都是字符串,但是结果不同

建议阅读:深拷贝与浅拷贝

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • “简单的生活会让一个人得到纯粹的快乐,我相信我之所以快乐是因为我一直以来都没有雄心壮志。” 跟着青鹿看的这本《小人...
    燕归来2021阅读 389评论 5 3
  • 【日精进打卡第2146天】 姓名:陈权 公司:青柠养车 【知~学习】 《六项精进实践》 1、诵读次数:786 2、...
    水青柠阅读 101评论 0 0
  • 姓名:赵丽娟 【日精进打卡第1809天】 【知~学习】读书 《经营与会计》ok 《活法》75-77 【经典名句】 ...
    阿诗玛_6209阅读 99评论 0 0
  • 金融行业优秀人才的晋升通道--中国社科院与美国杜兰大学金融管理硕士 都说金融行业内卷厉害,那么为什么还会有那么多人...
    景老师阅读 84评论 0 0
  • 中原焦点团队中32逄锦芬2023年2月2日分享第397天 总约练171次,咨询师75次。本周约练(1.30-2.6...
    逄锦芬阅读 85评论 0 0