JSON.stringify的作用

是一个用于序列化对象的方法

接受三个参数:json.stringify(value,replacer,space)

第一个参数:value表示要被序列化的对象(接受对象或数组类型)

第二个参数:replacer表示对象中要序列化的属性(接受数组和函数类型)

第三个参数:space用于描述序列化后的缩进字符数,用于美化格式

面试(应用场景):

场景一:localStorage存储

loaclStorage只能存储字符串的存储类型 是键值对的格式

例:const obj={a:'1',b:'2'}

       localStorage.setItem('key',obj)

       localStorage.getItem('key') //'[object Object]' 存储失败

  解决:使用localStorage.stringify()

       localStorage.setItem('key',JSON.stringify(obj))

       localStorage.getItem('key')  //'{"a":"1","b":"2"}'存储成功

       JSON.parse(localStorage.getItem('key'))  //{a:'1',b:'2'}再利用JSON.parse()提取出来

场景二:对象的深拷贝

例:let arr={a:'1',b:'2'}

       let arr2=arr

       arr2.a='111'

       console.log(arr.a)//'111'

  解决:利用JSON.stringify和JSON.parse给对象做深拷贝

       let arr3=JSON.stringify(JSON.parse(arr))

       arr3.b='2222'

       console.log(arr.b)//'2'

场景三:删除对象属性

     方法1:delete方法删除

          let obj={a:'1',b:'2'}

         delete obj.a

         log(obj)//{b:'2'}

   方法2:利用JSON.stringify()的第二个参数进行删除

      let obj = { a: "1", b: "2" };

      let obj1 = JSON.parse(

        JSON.stringify(obj, (key, value) => {

          if (key === "b") {

            return undefined;

          } else {

            return value;

          }

        })

      );

      console.log(obj1);  //{a:'1'}

或:

      let obj = { a: "1", b: "2" };

      let obj1 = JSON.parse(

        JSON.stringify(obj,['b'])

      );

      console.log(obj1);  //{a:'1'}

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值