javascript - NOT 与本地存储的 NULL

javascript - NOT vs NULL with Local storage

所以我想从本地存储中获取一个变量。如果它不存在于本地存储中,那么我想创建该变量。我正在使用 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>

不完全相同...此 !x 正在检查真值,但 nullundefined 甚至 0 之间的任何值都将 return false.

===== 之间也存在显着差异,其中 == 将尝试自动类型转换以检查值是否在某种程度上兼容,但是=== 将检查是否严格相等。

您可以在此 link Values, Types, and Operators

中了解有关 JavaScript 类型及其与不同运算符的交互的更多信息

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

localStorage.getItem returns 如果密钥不存在则为 null。因此 a === null 将是对密钥是否不存在的最具体检查。但是,null 在 javascript 中是假的。所以你可以减少检查:

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

它的功能与使用 not 运算符的 if 相同