Javascript 以有效的方式检查多个变量是否为null、未定义或空
目前我有这样一个if条件:Javascript 以有效的方式检查多个变量是否为null、未定义或空,javascript,jquery,Javascript,Jquery,目前我有这样一个if条件: if( (variable != null && variable != '' && !variable) && (variable2 != null && variable2 != '' && !variable2) && (variable3 != null && variable3 != '' && !variable3)
if(
(variable != null && variable != '' && !variable) &&
(variable2 != null && variable2 != '' && !variable2) &&
(variable3 != null && variable3 != '' && !variable3)
//etc..
)
我需要用它来检查多个变量是否有值(没有遗漏),但我觉得这是一个混乱的解决方案,我想问是否有更有效的方法?也许还需要额外的检查?我想您是在检查真实值吧?如果是这样,您只需执行以下操作:
variable&&variable2&&variable3
因为如果(variable)
忽略任何falsy
值,这将适用于您
if(variable && variable2 && variable3)
以下值在JS中总是错误的:
false.
0 (zero)
"" (empty string)
null.
undefined.
NaN (a special Number value meaning Not-a-Number!)
更新:-
如果存在这样的情况,即即使值为0,也要执行If块,则必须添加一个额外的检查,表示0或其他值
if((variable || variable === 0) && (variable2 || variable2 === 0) && (variable3 || variable3 === 0))
看
!!变量对于所有falsy值都为真,因此您只需
if(variable1 && variable2 && variable3 && ...)
如果IE支持对您很重要(IE9+),您可以使用以下解决方案 你可以用。简而言之,如果数组中的任何元素满足某个条件,则此数组方法将返回true。此条件将是
el==null
这将起作用,因为undefined==null
和null==null
都在true
中解析
有关更多信息,请参阅此stackoverflow帖子
Array.prototype.some()
浏览器支持(93%的编写时间)
var a=5;
var b=零;
var c=未定义;
如果([a,b,c].some(el=>el==null)){
console.log(“你已经准备好了”)
}
如果您的变量包含一些真实的值,如字符串,并且在您的条件下被认为是正的,那么您只需使用Array.prototype.each()
if (![var1, var2, var3].every(Boolean)) {
throw new exc;
}
它将检查以确保每个变量都有真实值。长柄-
if (var1 !== null || var1 !== undefined || var1 !== '') {
let var2 = var1;
}
速记-
const var2 = var1 || '';
我认为
if(var)
将完成这项工作。(这将测试变量是否包含某些内容)的可能重复项,但如果var=0,它将被视为false。测试false是否也有效?(这可能会节省某人2分钟):var variable=“”;var variable2=“”;var variable3=“”;如果(!variable&&!variable2&&!variable3){console.log(“hi”)}