Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以有效的方式检查多个变量是否为null、未定义或空_Javascript_Jquery - Fatal编程技术网

Javascript 以有效的方式检查多个变量是否为null、未定义或空

Javascript 以有效的方式检查多个变量是否为null、未定义或空,javascript,jquery,Javascript,Jquery,目前我有这样一个if条件: if( (variable != null && variable != '' && !variable) && (variable2 != null && variable2 != '' && !variable2) && (variable3 != null && variable3 != '' && !variable3)

目前我有这样一个if条件:

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”)}