Javascript 不大于 0

Javascript not greater than 0

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

我试过了

if(!a>0){}

但是没用。

您需要第二组括号:

if(!(a>0)){}

或者,更好的是 "not greater than" 等同于 "less than or equal to":

if(a<=0){}

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

! 运算符应用于 a,而不是整个表达式,因此如果您采用 "not" 路线,则需要额外的括号。

如果您执意使用>符号,只需将运算符反转即可

if(0>a)

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

if(0>=a)

Mureinik 的回答是完全正确的,但鉴于 "understanding falsey values" 是 JavaScript 中更重要、不太直观的部分之一,也许值得多解释一下。

没有第二组括号,要计算的语句

!a>0

实际计算为

(!a) > 0

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

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 为 true 如果它有任何其他的,它是真的,因此 !a 是假的。

然后,我们尝试将其与 0 进行比较。 而0,我们知道,也可以是"false",所以你的比较要么是

if (true > false) {}

if (false > false) {}

鉴于 true 或 false 实际上永远不会等于 false(它们不能大于或小于!),您的 "if" 将始终失败,并且括号内的代码永远不会被评估。