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 .
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.
Wenn Sie das >
-Symbol verwenden möchten, kehren Sie einfach die Operatoren
Wenn a
auch gleich 0
sein kann, dann
Tags und Links javascript jquery if-statement equals