Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 使用==运算符检查变量是否不是0/false/null等?_Javascript_Variables - Fatal编程技术网

Javascript 使用==运算符检查变量是否不是0/false/null等?

Javascript 使用==运算符检查变量是否不是0/false/null等?,javascript,variables,Javascript,Variables,我想让这个函数检查变量是否是if(variable)返回true的任何东西将返回true,例如任何大于0的数字。如果可能的话,我想保留这个简单的格式,并在check是一个特定值时使用=操作符,那么我可以将其默认为什么来实现这一点呢 我可以用这段代码实现同样的效果: function test(variable, check) { var check = check || ???; if (variable == check) { //do stuff

我想让这个函数检查变量是否是
if(variable)返回true的任何东西
将返回true,例如任何大于0的数字。如果可能的话,我想保留这个简单的格式,并在
check
是一个特定值时使用
=
操作符,那么我可以将其默认为什么来实现这一点呢

我可以用这段代码实现同样的效果:

function test(variable, check) {

    var check = check || ???;

    if (variable == check) {
        //do stuff
    }
}

如果我理解正确,您基本上希望返回
If(variable)true
,并检查它是否等于第二个参数?如果是这样,这就足够了:

function test(variable, check) {

    if(check) {

        //check specific value
        if (variable == check) {
            //do stuff
        }

    } else {

        //check isn't set, so accept any truthy values (like 5 or 'string')
        if(variable) {
            //do stuff
        }
    }
}

聊了一会儿,下面是答案:

function test(variable, check) {
  if(variable == check) return true; //check against the check value
  if(variable) return true; //default check
  return false; //return false otherwise.
}

这是显而易见的事实=D

@LoïsDiQual但
5==false
也将返回false。请参阅@MrAdam nope,这将发出警报(5 | false);弹出窗口5@Joraid当然可以,但是如果我按照建议使用
var check=check | | false
,那么如果没有设置check,变量将根据
false
进行检查,因此如果变量是5,那么当我的目标是让它返回true时,它将返回false。@wared我们开始了。我什么都不想退,只是一张支票。我可能不得不用第二种方法(或第二种方法的变体)来完成,我只是想知道是否可以像第一种方法一样简单;返回false可以
返回!!可变的
。甚至更短:
返回变量==检查| |!!可变的@wared true,但为了简单起见,这应该更容易理解。也许你应该把它作为一个备选答案发表一条评论就足够了,因为代码与你的代码完全相同。不过我同意,你的代码更容易理解。谢谢!是的,我踢了自己。
if (check ? check == variable : variable) {
    // do something
}