前端session和local存储数据时,使用JSON.parse(stringify)转义的必要性

一.常见问题

sessionStorage.setItem("a", true);
sessionStorage.getItem("a")  == true;  // 结果为 false

我们存入a的值是Boolean值true,获取a值后却不等于true

二.解决办法

sessionStorage.setItem("b", JSON.stringify(true));
JSON.parse(sessionStorage.getItem("b")) == true;  // 结果为 true

三.原因

出现预料以外的坑,原因如下:
1.浏览器缓存会自动将数据转义string格式进行存储。sessionStorage.getItem("a") //结果为 'true'
2.js中一些反直觉判断(不理解的同学可以查看JavaScript高级程序设计第三章)

false == 'false'  //false
true == 'true'  //false
undefined == 'undefined'  //false
null == 'null'  //false

综上所述,让我们在操作浏览器数据存储时,使用JSON.stringify和JSON.parse成为习惯,避免入坑哦。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值