所以我想从本地存储中获取一个变量。如果本地存储中不存在该变量,那么我想创建该变量。我使用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>
<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>
答案 0 :(得分:1)
https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem
如果键不存在, ==
返回null。因此,===
将是密钥是否不存在的最具体检查。但是,在javascript中null为假。因此,您可以将支票简化为:
localStorage.getItem
与not运算符的功能是否相同
答案 1 :(得分:0)
不完全相同... !x
正在检查真实值,但null
,undefined
甚至0
之间的任何值都将返回{{1 }}。
false
和==
之间也有很大的区别,其中===
将尝试自动类型转换,以检查值是否在某种程度上兼容,但是{{ 1}}将检查严格的相等性。
您可以在此链接Values, Types, and Operators
中详细了解JavaScript类型及其与不同运算符的交互。