我知道下面是JavaScript中检查变量是否为空的两种方法,但我不知道哪一种是最佳实践。
我应该:
if (myVar) {...}
or
if (myVar !== null) {...}
我知道下面是JavaScript中检查变量是否为空的两种方法,但我不知道哪一种是最佳实践。
我应该:
if (myVar) {...}
or
if (myVar !== null) {...}
当前回答
我刚刚还遇到了另一种可能的情况。
我做了一个ajax调用,得到的数据为空,在字符串格式。我必须这样检查:
if(value != 'null'){}
因此,null是一个读为“null”的字符串,而不是真正的null。
编辑:应该理解的是,我并不是按照它应该做的方式来销售它。我有一个场景,这是唯一可以做到的方法。我不知道为什么……也许编写后端程序的人没有正确地显示数据,但无论如何,这是现实生活。令人沮丧的是,看到有人知道它不太对,但却对它有帮助的人投了赞成票。
其他回答
只有当myVar等于:false, 0, "", null, undefined, NaN或你从未定义变量myVar时,你的if(myVar) {code}中的代码才会不执行(然后额外的代码停止执行并抛出异常)。 你的if(myVar !== null) {code}内的代码将不会执行只有当myVar等于null或你从未定义它(抛出异常)。
这里有所有(src)
if
==(否定!=)
===(它的否定!==)
它们不相等。如果myVar为真(即在条件中为真),第一个将执行if语句后面的块,而第二个将在myVar为任何值而不是null时执行块。
在JavaScript中唯一不是真值的值是以下(又名假值):
零 未定义的 0 ""(空字符串) 假 南
与其使用多个条件语句,不如使用下面的解决方案。
if(![false, 0, "", null, undefined, NaN].includes(myVar)){
// It's not a null value
}
有时候,如果还没有定义,最好还是做好准备。 为此我使用typeof
if(typeof(variable) !== "undefined") {
//it exist
if(variable !== null) {
//and is not null
}
else {
//but is null
}
}
else {
//it doesn't
}
我刚刚还遇到了另一种可能的情况。
我做了一个ajax调用,得到的数据为空,在字符串格式。我必须这样检查:
if(value != 'null'){}
因此,null是一个读为“null”的字符串,而不是真正的null。
编辑:应该理解的是,我并不是按照它应该做的方式来销售它。我有一个场景,这是唯一可以做到的方法。我不知道为什么……也许编写后端程序的人没有正确地显示数据,但无论如何,这是现实生活。令人沮丧的是,看到有人知道它不太对,但却对它有帮助的人投了赞成票。