L'utilisation de ==
pour comparer à zéro n'est tout simplement pas une erreur ou dangereuse lors de la comparaison d'une valeur qui est garantie d'être un nombre. Par example:
var arr = ["foo"];
var arrIsEmpty = (arr.length == 0);
J'ai tendance à utiliser ==
dans ces situations et c'est une décision purement stylistique. Je souhaite que JSHint respecte mes souhaits bien informés.
Vous connaissez l'option eqeqeq
, n'est-ce pas ? C'est de là que vient cette erreur, la définir sur false vous libérera de ce cas. Ou recherchez-vous quelque chose de plus spécifique, comme supprimer uniquement les comparaisons avec 0
(et non les comparaisons avec d'autres valeurs) ?
eqeqeq est le cas général. Il semble y avoir un contrôle séparé pour comparer à 0 qui se plaint même si eqeqeq est faux.
Ce que je veux vraiment, c'est pouvoir supprimer toutes les formes de plaintes de JSHint concernant l'utilisation de == et !=, mais c'est la comparaison à 0 qui empêche cela.
Hmm je vois. Le code connexe est ici, il appelle certainement spécifiquement cette comparaison (entre autres):
https://github.com/jshint/jshint/blob/6140ade7437799e182347bf2d39ec68c3c3d0263/src/jshint.js#L2201 -L2215
https://github.com/jshint/jshint/blob/6140ade7437799e182347bf2d39ec68c3c3d0263/src/jshint.js#L1338 -L1346
Vous pouvez désactiver cet avertissement par son code.
Pour les autres qui pourraient avoir du mal à utiliser la réponse de valueof, la définition de "-W041": false
semble faire l'affaire.
Merci @privman
Pour info, j'ai aussi trouvé plus de détails ici
Existe-t-il une motivation pour maintenir les avertissements W041
en vigueur lorsque "eqeqeq": false
?
Ils interdisent effectivement l'utilisation de ==
et de !=
dans les situations concernées.
Commentaire le plus utile
Pour les autres qui pourraient avoir du mal à utiliser la réponse de valueof, la définition de
"-W041": false
semble faire l'affaire.