【发布时间】:2014-02-20 07:48:34
【问题描述】:
我目前面临一个问题,可能很简单,但我在研究中一无所获...
我想检查(在 JavaScript 中)一个变量是一个数字,以及它是大于 100 还是小于 0。
我试过这个:
if ((returnValue > 100) || (returnValue < 0) || (typeof returnValue != 'number')) {
//not correct
} else {
// let's do some stuff here
}
但它不起作用......当我输入例如数字 50(这很好)时,发生在“if”而不是“else”中,正如预期的那样!
所以我做到了:
if ((returnValue > 100) || (returnValue < 0) || (isNaN(returnValue)))
然后我注意到它非常有效!
我也知道我可以将它分成两部分,首先测试变量是否为数字,然后测试它是否大于 100 或小于 0,但这不是我目前正在寻找的 ;)
您能否解释一下为什么第一次尝试不起作用(和/或使它起作用)?
谢谢!
【问题讨论】:
-
我不确定我是否关注您的问题。如果我使用
50,则执行else块,而不是if块:jsfiddle.net/bsNWW。也许您真的在使用字符串"50",在这种情况下,Pointy 的回答提供了正确的解释。
标签: javascript numbers typeof