it-swarm.com.de

Javascript nicht größer als

Wie kann ich überprüfen, ob der Wert nicht größer als 0 in Javascript ist?

Ich habe es versucht 

if(!a>0){}

Aber es funktioniert nicht.

13
fc123

Sie benötigen einen zweiten Satz Klammern:

if(!(a>0)){}

Oder besser noch "nicht größer als" ist das Gleiche wie "kleiner oder gleich":

if(a<=0){}
53
Mureinik

Mureiniks Antwort ist völlig richtig, aber da "Falsey-Werte verstehen" eine der wichtigeren, weniger intuitiven Komponenten von JavaScript ist, lohnt es sich vielleicht, etwas mehr zu erklären.

Ohne den zweiten Satz von Klammern wird die Anweisung ausgewertet 

!a>0

wird eigentlich als bewertet 

(!a) > 0

Was bedeutet (! A)? __. Es bedeutet, die boolesche Wahrhaftigkeit von "a" zu finden und es umzudrehen; wahr wird falsch und falsch wird wahr .. Die boolesche Wahrhaftigkeit von "a" bedeutet - wenn ein Wert einen der Werte hat, der als "falsch" betrachtet wird, ist er falsch. In allen anderen Fällen, dh für alle anderen möglichen Werte von "a", ist dies "wahr" . Die Falsey-Werte sind: 

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

Wenn also einer dieser Werte einen Wert hat, ist er falsch, und a ist wahr. Wenn er einen anderen Wert hat, ist er wahr und daher ist er falsch.

Und dann versuchen wir, dies mit 0 ..__ zu vergleichen. Und 0, wie wir wissen, kann auch "falsch" sein, also ist Ihr Vergleich entweder der Fall 

if (true > false) {}

oder

if (false > false) {}

Wenn Sie sehen, dass weder wahr noch falsch ist, kann es immer etwas anderes als gleich falsch sein (sie können nicht größer oder kleiner als! Sein), Ihr "if" wird immer fehlschlagen und der Code in den Klammern wird niemals ausgewertet.

7
Ben Green

a <= 0 oder (weniger klar, IMO) !(a > 0)

Der !-Operator wird auf a und nicht auf den gesamten Ausdruck angewendet. Daher sind zusätzliche Klammern erforderlich, wenn Sie die Route "not" wählen.

2
Dave Newton

Wenn Sie das >-Symbol verwenden möchten, kehren Sie die Operatoren einfach um

if(0>a)

Wenn a auch gleich 0 sein kann, dann

if(0>=a)
0
jjk_charles