作者:ooleysciacca | 来源:互联网 | 2022-11-29 18:57
我是Javascript的新手,并且遇到了一个看似明显的问题.
const item = sessionStorage.getItem('item'); // undefined
if (item) {
return item;
}
在Chrome调试器中,我可以看到该项目是未定义的.我希望条件失败.令我惊讶的是,它正在评估为真.
我以为我已经测试了这个.为什么它会在有条件的情况下回归?
我遇到过其他检查,例如如何在Javascript中检查"未定义"所推荐的检查?.但是......为什么我要为这样一个简单的检查做一些甚至远程"复杂"的事情呢?上面的方法看起来如此简单和优雅,我不愿意失去它.
我也在https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage上的示例中看到了这种方法.
1> Paul..:
你没有undefined
从sessionStorage 获得值,而是字符串"undefined"
,就像任何其他非空字符串一样真实.
我知道你没有获得价值,undefined
因为这是不可能的.sessionStorage.getItem
只能返回一个字符串或null
.另请注意,它setItem
会将其参数强制转换为字符串,因此sessionStorage.setItem('item', undefined)
将item设置为字符串"undefined"
.
如果要删除项目,则应使用sessionStorage.removeItem('item');
而不是将其设置为undefined
.