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
正在检查真值,但 null
、undefined
甚至 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 相同
所以我想从本地存储中获取一个变量。如果它不存在于本地存储中,那么我想创建该变量。我正在使用 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
正在检查真值,但 null
、undefined
甚至 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 相同