gpt4 book ai didi

javascript - 为什么 !== ""不等于 !== null

转载 作者:数据小太阳 更新时间:2023-10-29 04:58:08 25 4
gpt4 key购买 nike

最近在JavaScript中养成了使用的习惯

if(data !== "")

检查数据是否为空||未定义 ||空白字符串。

当我尝试使用

if(data !== null)
//work here

Resharper 向我抛出一个可怕的错误,说

"qualifier can be null or undefined"

enter image description here

我添加了一个 jFiddle 只是为了澄清:JsFiddle

我的问题是:这是 ReSharper 错误还是背后有什么原因?

最佳答案

首先,你的习惯是错误的。使用:

if(data !== "")

只会检查空字符串。如果 dataundefinednull,if block 仍然会执行,因为 !== 检查相等性而不执行任何类型的转换。

其次,ReSharper 没有问题。它试图告诉你你可能犯了一个错误。 if(data !== null) 将只检查 null。 undefined 和空字符串仍将返回 true 并导致 block 执行。 ReSharper 警告您可能犯了一个错误(因为您很少需要只检查null)。

请记住 undefined !== null !== ""。您可以尝试所提到的几个快捷方式,但如果您真的希望您的代码完整,只需检查所有三个。如果您担心代码太长,请将检查移至实用方法:

function hasValue(var data) {
return (data !== undefined) && (data !== null) && (data !== "");
}

关于javascript - 为什么 !== ""不等于 !== null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24413881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com