Javascript不大于0

时间:2015-01-03 09:45:09

标签: javascript if-statement

如何检查javascript中的值是否大于0

我试过

if(!a>0){}

但它没有用。

4 个答案:

答案 0 :(得分:59)

您需要第二组括号:

if(!(a>0)){}

或者,更好但“不大于”与说“小于或等于”相同:

if(a<=0){}

答案 1 :(得分:9)

Mureinik的回答是完全正确的,但是看作“理解虚假价值”是JavaScript中更重要,更不直观的部分之一,或许值得解释一下。

没有第二组括号,要评估的语句

!a>0

实际上被评估为

(!a) > 0

那么(!a)意味着什么? 这意味着,找到“a”的布尔真值并翻转它;真实变为虚假,虚假变为真实。 “a”的布尔真值意味着 - 如果它有一个被认为是“假”的值,那么它就是假的。在所有其他情况下,即对于“a”的所有其他可能值,它是“真”。 假名值为:

false
0 (and -0)
"" (the empty string)
null
undefined
NaN (Not a Number - a value which looks like a number, but cannot be evaluated as one

因此,如果a具有任何这些值,则为false并且!a为真 如果它有任何其他,那是真的,因此!a是假的。

然后,我们尝试将其与0进行比较。 如我们所知,0也可能是“假”,所以你的比较要么

if (true > false) {}

if (false > false) {}

看起来既不是真或假,实际上可以是除了等于假的任何东西(它们不能大于或小于!),你的“if”将永远失败,并且括号内的代码永远不会被评估

答案 2 :(得分:3)

a <= 0或(不太清楚,IMO)!(a > 0)

!运算符正在应用于a,而不是整个表达式,因此如果你去&#34;不是&#34;则需要额外的括号。路由。

答案 3 :(得分:0)

如果您一心想要使用>符号,只需反转操作符

即可
if(0>a)

如果a也可以等于0,那么,

if(0>=a)