Comment vérifier si la valeur est pas supérieure à 0
en javascript?
J'ai essayé
if(!a>0){}
Mais ça ne marche pas.
Vous avez besoin d'un deuxième ensemble de supports:
if(!(a>0)){}
Ou, encore mieux, "pas plus grand que" revient à dire "moins que ou égal à":
if(a<=0){}
La réponse de Mureinik est tout à fait correcte, mais comme "comprendre les valeurs de Falsey" est l'une des parties les plus importantes et moins intuitives de JavaScript, cela vaut peut-être la peine d'expliquer un peu plus.
Sans la deuxième série de crochets, la déclaration à évaluer
!a>0
est en fait évalué comme
(!a) > 0
Alors que veut dire (! A)? Cela signifie trouver la vérité booléenne de "a" et la retourner; vrai devient faux et faux devient vrai ... La vérité booléenne de "a" signifie - si elle a une des valeurs considérées comme "fausse", elle est fausse. Dans tous les autres cas, c'est-à-dire pour toutes les autres valeurs possibles de "a", il s'agit de "vrai" . Les valeurs de Falsey sont:
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
Donc, si a une de ces valeurs, elle est fausse et! A est vraie Si elle en a une autre, elle est vraie et donc! A est fausse.
Et ensuite, nous essayons de comparer ceci à 0 . Et 0, comme nous le savons, peut aussi être "faux", votre comparaison est donc soit
if (true > false) {}
ou
if (false > false) {}
Étant donné que ni vrai ni faux ne peuvent en réalité jamais être égaux à faux (ils ne peuvent pas être supérieurs ou inférieurs à!), Votre "si" échouera toujours et le code entre crochets ne sera jamais évalué.
a <= 0
ou (moins clairement, IMO) !(a > 0)
L'opérateur !
est appliqué à a
et non à l'expression entière. Des parenthèses supplémentaires sont donc nécessaires si vous choisissez la route "pas".
Si vous voulez vraiment utiliser le symbole >
, inversez les opérateurs.
if(0>a)
Si a
peut également être égal à 0
, alors,
if(0>=a)