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

sessionStorage.login = false;

if (sessionStorage.login) {

  console.log('已登录')

  console.log(sessionStorage.login)

} else {

  console.log(sessionStorage.login)

  console.log('未登录')

}

如代码sessionStorage.login已经被设为false

console.log(sessionStorage.login)也是返回false

为何通过if判断返回是true呢?

https://img4.mukewang.com/5c78e79d0001ac6d01470071.jpg

波斯汪
浏览 754回答 1
1回答

慕姐8265434

 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格式,这时候设置的值是啥就是啥了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript