javascript-不与本地存储中的NULL比较

javascript-不与本地存储中的NULL比较,javascript,local-storage,logical-operators,comparison-operators,Javascript,Local Storage,Logical Operators,Comparison Operators,所以我想从本地存储中获取一个变量。如果它不存在于本地存储中,那么我想创建该变量。我使用if(x==null)来查看它是否存在,然后我注意到if(!x)具有相同的结果。可以使用吗在这种情况下?我不知道和null在这里是相同的。另外,在检查null时,我应该使用==还是=可以 这里有两个例子给出了相同的结果 <script> localStorage.clear(); a=localStorage.getItem('a');if (!a) a='hello'; alert(a); x

所以我想从本地存储中获取一个变量。如果它不存在于本地存储中,那么我想创建该变量。我使用
if(x==null)
来查看它是否存在,然后我注意到
if(!x)
具有相同的结果。可以使用
在这种情况下?我不知道
null
在这里是相同的。另外,在检查null时,我应该使用
==
还是
=
可以

这里有两个例子给出了相同的结果

<script>
localStorage.clear();

a=localStorage.getItem('a');if (!a) a='hello';
alert(a);

x=localStorage.getItem('x');if (!x) x=0.7;
alert(x);

</script>

localStorage.clear();
a=localStorage.getItem('a');如果(!a)a='hello';
警报(a);
x=localStorage.getItem('x');如果(!x)x=0.7;
警报(x);


localStorage.clear();
a=localStorage.getItem('a');如果(a==null)a='hello';
警报(a);
x=localStorage.getItem('x');如果(x==null)x=0.7;
警报(x);

不完全一样。。。这是
!x
正在检查真实值,但是
null
未定义
、甚至
0
之间的任何值都将返回
false

=
==
之间也存在显著差异,其中
==
将尝试自动类型转换,以检查值是否以某种方式兼容,但
==
将检查严格的相等性

在此链接中,您可以了解有关JavaScript类型及其与不同运算符的交互的更多信息

localStorage.getItem
如果密钥不存在,则返回null。因此,如果密钥不存在,
a===null
将是最具体的检查。然而,null在javascript中是错误的。因此,您可以将支票缩减为:

a=localStorage.getItem('a')| |'hello'


如果我理解正确的话,它的功能与您的if相同,并且使用not运算符

可能与So重复!表示“falsy”,如果本地存储中不存在值,则该值为NULL。由于null是一个错误的值,在这种情况下使用if(!x)是完全可以接受的,对吗?很好的答案我不知道你可以用这种方式使用“或”符号。非常好!
<script>
localStorage.clear();

a=localStorage.getItem('a');if (a==null) a='hello';
alert(a);

x=localStorage.getItem('x');if (x==null) x=0.7;
alert(x);

</script>