关于javascript:检查not null不使用localStorage

checking for not null not working with localStorage

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
6
7
8
9
10
11
var test = null;
if(test !== null){
    console.log('should not be logged in the console');//it worked
}


localStorage.setItem('foo',null);
console.log(localStorage.getItem('foo'));//logs null
if(localStorage.getItem('foo') !== null){
    console.log('should not be logged');//din't work, it's getting logged in the console
}

这似乎是本地存储的值NUL作为字符串NUL。所以,跟踪代码对我很好。

ZZU1

我还确保了为我工作的代码,设置了局部存储价值超过零。

这实际上不是一个答案。因为我们可以将本地存储值设置为字符串零太多。没有?

我知道我可以像if(!variable){那样检查。

而且只有这样才能检查NULLY:

1
if(variable === null && typeof variable ==="object")

这可能是一个存储系统的错误?复制这个网站码到您的网站上以设置一个投票箱在您的网站上。


根据这个答案:在HTML5本地存储中存储对象

本地存储仅用于保存字符串键值对!

空对象为空。

所以这不是一个bug,而是预期的行为。


只能在本地存储中存储string

因此,当您在本地存储中保存null值时,实际上您在localStorage中存储了"null"字符串。

要检查localStorage中的值是否为null,请使用==

例子:

1
2
3
4
5
6
7
8
localStorage.setItem('foo', null);
console.log(localStorage.getItem('foo')); //logs null as string
console.log(typeof localStorage.getItem('foo')); //logs string

if (localStorage.getItem('foo') != null) {
//                              ^^         // Don't use strict comparison operator here
    console.log('Should work now!');
}