如何检查javascript中的值不是否大于0
?
我试过
if(!a>0){}
但它没有用。
答案 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)