javascript-本地存储不支持VS空

时间:2019-01-22 17:49:25

标签: 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=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>

2 个答案:

答案 0 :(得分:1)

https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem

如果键不存在,

==返回null。因此,===将是密钥是否不存在的最具体检查。但是,在javascript中null为假。因此,您可以将支票简化为:

localStorage.getItem

与not运算符的功能是否相同

答案 1 :(得分:0)

不完全相同... !x正在检查真实值,但nullundefined甚至0之间的任何值都将返回{{1 }}。

false==之间也有很大的区别,其中===将尝试自动类型转换,以检查值是否在某种程度上兼容,但是{{ 1}}将检查严格的相等性。

您可以在此链接Values, Types, and Operators

中详细了解JavaScript类型及其与不同运算符的交互。