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
}