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格式,这时候设置的值是啥就是啥了。
添加回答
举报
0/150
提交
取消