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" 将始终失败,并且括号内的代码永远不会被评估。
如何在 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" 将始终失败,并且括号内的代码永远不会被评估。