Maison >interface Web >js tutoriel >Quelle est la différence entre isNaN et Number.isNaN en js

Quelle est la différence entre isNaN et Number.isNaN en js

青灯夜游
青灯夜游original
2020-11-09 13:44:342770parcourir

Différence : Number.isNaN n'a pas de comportement de conversion de type, tandis que isNaN tentera de convertir le paramètre en type Number. isNaN détermine uniquement si le paramètre entrant peut être converti en nombre, et ne détermine pas strictement s'il est égal à NaN tandis que Number.isNaN détermine si le paramètre entrant est strictement égal à NaN ;

Quelle est la différence entre isNaN et Number.isNaN en js

Tutoriel recommandé : "Tutoriel vidéo JavaScript"

isNaN

Lorsque nous passons un paramètre à isNaN, son intention initiale est d'essayer de convertir le paramètre en type Number via la méthode Number(). S'il réussit, il renvoie. false, s'il échoue, il renvoie vrai.

IsNaN détermine donc uniquement si le paramètre entrant peut être converti en nombre, et ne détermine pas strictement s'il est égal à NaN.

Exemple :

Number('测试')

Étant donné que "test" n'est pas converti avec succès en type Number, le code suivant renvoie true

console.log(isNaN('测试')) //true

Number. isNaN

détermine si le paramètre transmis est strictement égal à NaN (c'est-à-dire ===).

Alors, dans quelles circonstances Number.isNaN est-il généralement utilisé ?

Lorsque deux variables sont opérées, nous pouvons utiliser Number.isNaN pour déterminer si sa valeur est NaN

console.log(Number.isNaN(1/'测试')); //输出true

La différence entre les deux

La plus grande différence entre Number.isNaN et isNaN est que Number.isNaN n'a pas de comportement de conversion de type.

console.log(isNaN('测试')) //true
console.log(Number.isNaN('测试')) //false

Dans le code ci-dessus, la chaîne "test" est transmise, mais pourquoi les résultats sont-ils différents ? La raison est la suivante :

isNaN tente de convertir la chaîne "test" en type Number via la méthode Number, mais la conversion échoue car le résultat de Number('test') est NaN, donc il renvoie finalement true .

La méthode Number.isNaN détermine uniquement strictement si les paramètres entrants sont tous égaux à NaN (« test » === NaN). Bien sûr, les chaînes ne sont pas toutes égales à NaN, donc elle renvoie false.

Pour plus de connaissances liées à la programmation, veuillez visiter : Enseignement de la programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn