web-dev-qa-db-ja.com

Javascriptが0以下

値がnotより大きいかどうかを確認する方法0 javascriptで?

私は試した

if(!a>0){}

しかし、それは機能していません。

19
fc123

ブラケットの2番目のセットが必要です。

if(!(a>0)){}

または、「より大きくない」というのは、「以下」と言うのと同じです。

if(a<=0){}
63
Mureinik

Mureinikの答えは完全に正しいですが、「偽の値を理解する」と考えることはJavaScriptのより重要で直感的でない部分の1つであり、もう少し説明する価値があります。

ブラケットの2番目のセットがない場合、評価されるステートメント

!a>0

実際に評価される

(!a) > 0

(!a)はどういう意味ですか?つまり、「a」の真偽値を見つけて、それを反転します。 trueはfalseになり、falseはtrueになります。 「a」のブール値の真偽は、aが「false」と見なされる値の1つを持っている場合、falseであることを意味します。他のすべての場合、つまり「a」の他のすべての可能な値の場合、「true」です。 falsey値は次のとおりです。

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は、ご存じのとおり、「false」になる可能性があるため、比較は次のいずれかです。

if (true > false) {}

または

if (false > false) {}

Trueまたはfalseのいずれも、実際にはfalseと等しくない(より大きいまたは小さくすることはできません!)と見なされると、「if」は常に失敗し、括弧内のコードは評価されません。

10
Ben Green

_a <= 0_または(それほど明確ではないが、IMO)!(a > 0)

_!_演算子は、式全体ではなくaに適用されているため、「not」ルートに進む場合は追加の括弧が必要です。

3
Dave Newton

>シンボルの使用に苦労している場合は、演算子を逆にするだけです

if(0>a)

a0と等しくなる場合、

if(0>=a)
0
jjk_charles