Jak sprawdzić, czy wartość jest nie większa niż 0
w javascript?JavaScript nie większy niż 0
Próbowałem
if(!a>0){}
Ale to nie działa.
Jak sprawdzić, czy wartość jest nie większa niż 0
w javascript?JavaScript nie większy niż 0
Próbowałem
if(!a>0){}
Ale to nie działa.
Potrzebny jest drugi zestaw uchwytów:
if(!(a>0)){}
Albo, jeszcze lepiej „nie większy niż” jest taka sama jak powiedzenie „mniejsze lub równe”:
if(a<=0){}
Zwróć uwagę, że dwie instrukcje "if" są takie same, jeśli "a" jest liczbą. 'tempStr =" asdasdasd "; ! (tempStr> 0) // prawda; tempStr <= 0 // false; ' – dayuloli
@Mureinik:'! (>) 'to nie to samo co' <= 'jeśli' a' ma wartość null/undefined. –
a <= 0
lub (mniej wyraźnie, IMO) !(a > 0)
Operator !
jest stosowany do a
, a nie do całego wyrażenia, więc dodatkowe paren Tezy są konieczne, jeśli idziesz trasą "nie".
Jeśli piekło gięte na użyciu >
symbol, po prostu odwrócić operatorów
if(0>a)
Jeśli a
może być też równa 0
więc
if(0>=a)
odpowiedź Mureinik jest całkowicie poprawna , ale widząc "zrozumienie wartości falseta" jest jedną z ważniejszych, mniej intuicyjnych części JavaScript, być może warto wyjaśnić trochę więcej.
Bez drugiego zestawu wsporników, oświadczenie należy ocenić
!a>0
jest właściwie ocenione jako
(!a) > 0
więc co ma (! A) oznacza? To znaczy, znajdź boolską prawdę "a" i odwróć ją; prawda staje się fałszywa, a fałsz staje się prawdą. Boolowska prawdomówność "a" oznacza - jeśli ma jedną z wartości uznawanych za "fałszywe", wówczas jest fałszywa. We wszystkich innych przypadkach, tj. Dla wszystkich innych możliwych wartości "a", jest "prawdziwe". Wartości falsey są:
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
Tak więc, jeśli ma żadnej z tych wartości, to jest fałszywe i to prawda Jeśli ma jakiekolwiek inne, to prawda, a zatem jest fałszywy!.
A potem staramy się porównać do 0. i 0, jak wiemy, może być również "false", więc porównanie jest albo
if (true > false) {}
lub
if (false > false) {}
Uznając, że ani prawda, ani fałsz nie mogą w rzeczywistości być niczym innym jak fałszywym (nie mogą być większe ani mniejsze niż!), Twoje "jeśli" zawsze zawiedzie, a kod wewnątrz nawiasów nigdy nie zostanie oceniony.
Świetna odpowiedź. Tylko: 'true> 0' lub (' true> false') faktycznie daje "true" w JavaScript, więc twoja ostatnia instrukcja ("nie mogą być większe lub mniejsze niż") jest błędna. –
Tylko jeśli (a <0) nie ma problemu. – harshes53
@ hbk35 Co jeśli 'a == 0' ??? –
możliwy duplikat [escape less/greater niż javascript] (http://stackoverflow.com/questions/5225096/escape-less-greater-than-javascript) – fc123