为了账号安全,请及时绑定邮箱和手机立即绑定

sessionStorage中已经被设为false的值,通过if判断为何返回true?

sessionStorage中已经被设为false的值,通过if判断为何返回true?

波斯汪 2019-02-26 13:12:17
sessionStorage.login = false;if (sessionStorage.login) {  console.log('已登录')  console.log(sessionStorage.login)} else {  console.log(sessionStorage.login)  console.log('未登录')}如代码sessionStorage.login已经被设为falseconsole.log(sessionStorage.login)也是返回false为何通过if判断返回是true呢?
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

 if (JSON.parse(sessionStorage.login)) {

      console.log('已登录')

      console.log(sessionStorage.login)

    } else {

      console.log(sessionStorage.login)

      console.log('未登录')

    }

原因是:sessionStorage这些浏览器存储的内容是string类型的,所以不管你是设置为true或者是false,用sessionStorage去取值时都是取到string类型的值,而"false"在js中就是真,所以如果值不为0的情况下永远都是真。


解决办法就是上述一样,先对取到的值转json格式,这时候设置的值是啥就是啥了。


查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 753 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信