fc1*_*123 19 javascript if-statement
如何检查是否值是不大于0在JavaScript?
我试过了
if(!a>0){}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
Mur*_*nik 64
你需要第二组括号:
if(!(a>0)){}
Run Code Online (Sandbox Code Playgroud)
或者,更好但"不大于"与说"小于或等于"相同:
if(a<=0){}
Run Code Online (Sandbox Code Playgroud)
小智 10
Mureinik的答案是完全正确的,但看作"理解虚假的价值观"是JavaScript中更重要,更不直观的部分之一,或许值得解释一下.
没有第二组括号,要评估的语句
!a>0
Run Code Online (Sandbox Code Playgroud)
实际上被评估为
(!a) > 0
Run Code Online (Sandbox Code Playgroud)
那么(!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
Run Code Online (Sandbox Code Playgroud)
因此,如果a具有任何这些值,则为false并且!a为true如果它具有任何其他值,则为真,因此!a为false.
然后,我们尝试将其与0进行比较.如我们所知,0和0也可能是"假的",因此您的比较也是如此
if (true > false) {}
Run Code Online (Sandbox Code Playgroud)
要么
if (false > false) {}
Run Code Online (Sandbox Code Playgroud)
看起来既不是真的也不是假的,除了等于假之外(它们不能大于或小于!),你的"if"将永远失败,并且括号内的代码永远不会被评估.