Javascript nicht größer als 0 [geschlossen]

7

Wie überprüft man in JavaScript, ob der Wert nicht größer als 0 ist?

Ich habe es versucht

%Vor%

Aber es funktioniert nicht.

    
fc123 03.01.2015, 09:45
quelle

4 Antworten

39

Sie benötigen eine zweite Klammer:

%Vor%

Oder besser noch "nicht größer als" ist dasselbe wie "weniger als oder gleich" zu sagen:

%Vor%     
Mureinik 03.01.2015, 09:46
quelle
6

Mureiniks Antwort ist völlig richtig, aber "falsche Werte zu verstehen" ist einer der wichtigeren, weniger intuitiven Teile von JavaScript, es ist vielleicht etwas wert, etwas mehr zu erklären.

Ohne die zweite Gruppe von Klammern die zu bewertende Anweisung

%Vor%

wird tatsächlich als

bewertet %Vor%

Was bedeutet (! a)? Es bedeutet, die boolesche Wahrheit von "a" zu finden und umzudrehen; Wahr wird falsch und falsch wird wahr. Die boolesche Wahrheit von "a" bedeutet - wenn es einen der Werte hat, die als "falsch" betrachtet werden, dann ist es falsch. In allen anderen Fällen, dh für alle anderen möglichen Werte von "a", ist es "wahr". Die falschen Werte sind:

%Vor%

Also, wenn a irgendeinen dieser Werte hat, ist es falsch und! a ist wahr Wenn es etwas anderes hat, ist es wahr und deshalb ist a falsch.

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

%Vor%

oder

%Vor%

Da weder wahr noch falsch jemals etwas anderes als gleich falsch sein kann (sie können nicht größer oder kleiner sein als!), wird Ihr "wenn" immer fehlschlagen und der Code innerhalb der Klammern wird niemals ausgewertet .

    
Ben Green 03.01.2015 09:56
quelle
2

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

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

    
Dave Newton 03.01.2015 09:47
quelle
0

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

um %Vor%

Wenn a auch gleich 0 sein kann, dann

%Vor%     
jjk_charles 03.01.2015 09:51
quelle