IsNaN () vs parseInt () confusion

Il y a quelque chose d'étrange.

Pourquoi
Avec isNaN("") Je reçois False
Mais
Avec parseInt("") je reçois NaN
?

isNaN prend un nombre entier comme argument – donc JS convertit "" en 0

parseInt prend une chaîne comme argument – donc une chaîne vide n'est pas un nombre

C'est parce que "" est équivalent à zéro dans JavaScript. Essayez "" == 0 . Cela signifie que si vous essayez de l'évaluer dans une équation numérique, il apparaîtra comme 0. Lorsque vous l'analysez, d'autre part, il se rend compte qu'il n'y a rien là-bas.

Comme alternative à l' parseInt vous pouvez utiliser Math.floor . Cela vous donnera 0 pour "" .