我知道下面是JavaScript中检查变量是否为空的两种方法,但我不知道哪一种是最佳实践。
我应该:
if (myVar) {...}
or
if (myVar !== null) {...}
我知道下面是JavaScript中检查变量是否为空的两种方法,但我不知道哪一种是最佳实践。
我应该:
if (myVar) {...}
or
if (myVar !== null) {...}
当前回答
有时候,如果还没有定义,最好还是做好准备。 为此我使用typeof
if(typeof(variable) !== "undefined") {
//it exist
if(variable !== null) {
//and is not null
}
else {
//but is null
}
}
else {
//it doesn't
}
其他回答
有时候,如果还没有定义,最好还是做好准备。 为此我使用typeof
if(typeof(variable) !== "undefined") {
//it exist
if(variable !== null) {
//and is not null
}
else {
//but is null
}
}
else {
//it doesn't
}
如果myVar为空,则如果block不执行,否则将执行。
if (myVar != null){…}
If(0)表示false, If(-1,或除0之外的任何其他数字)表示true。以下值不是真值,null, undefined, 0, ""(空字符串),false, NaN
永远不要使用id之类的数字类型
if (id) {}
对于可能值为0的id类型,我们不能使用if (id){},因为if(0)将意味着false,无效,这是我们想要的,它意味着有效为true id数。
所以对于id类型,我们必须使用以下方法:
if ((Id !== undefined) && (Id !== null) && (Id !== "")) {
} else {
}
对于其他字符串类型,我们可以使用if (string){},因为null, undefined,空字符串都将计算为false,这是正确的。
if (string_type_variable) { }
只有当myVar等于:false, 0, "", null, undefined, NaN或你从未定义变量myVar时,你的if(myVar) {code}中的代码才会不执行(然后额外的代码停止执行并抛出异常)。 你的if(myVar !== null) {code}内的代码将不会执行只有当myVar等于null或你从未定义它(抛出异常)。
这里有所有(src)
if
==(否定!=)
===(它的否定!==)
与其使用多个条件语句,不如使用下面的解决方案。
if(![false, 0, "", null, undefined, NaN].includes(myVar)){
// It's not a null value
}