Maison >interface Web >js tutoriel >Explication détaillée des exemples d'utilisation de la différence entre undefined, null, NaN, etc. en JavaScript

Explication détaillée des exemples d'utilisation de la différence entre undefined, null, NaN, etc. en JavaScript

伊谢尔伦
伊谢尔伦original
2017-07-18 13:43:361377parcourir

La différence entre indéfini, null et NaN dans js

1 Analyse de type :
Les types de données dans js incluent un nombre indéfini, booléen. , Il existe 5 types tels que chaîne et objet. Les 4 premiers types sont des types primitifs et le cinquième type est un type référence.

var a1;
var a2 = true;
var a3 = 1;
var a4 = "Hello";
var a5 = new Object();
var a6 = null;
var a7 = NaN;
var a8 = undefined;
alert(typeof a);    //显示"undefined"
alert(typeof a1); //显示"undefined"
alert(typeof a2); //显示"boolean"
alert(typeof a3); //显示"number"
alert(typeof a4); //显示"string"
alert(typeof a5); //显示"object"
alert(typeof a6); //显示"object"
alert(typeof a7); //显示"number"
alert(typeof a8); //显示"undefined"

Comme le montre le code ci-dessus, les valeurs non définies et les valeurs non attribuées ne sont pas définies, null est un objet spécial et NaN est un nombre spécial.

2. Opérations de comparaison

var a1;         //a1的值为undefined
var a2 = null;
var a3 = NaN;
alert(a1 == a2); //显示"true"
alert(a1 != a2); //显示"false"
alert(a1 == a3); //显示"false"
alert(a1 != a3); //显示"true"
alert(a2 == a3); //显示"false"
alert(a2 != a3); //显示"true"
alert(a3 == a3); //显示"false"
alert(a3 != a3); //显示"true"

Du code ci-dessus, nous pouvons tirer la conclusion : (1) indéfini et nul sont égaux ; NaN N'est égal à aucune valeur, n'est égal à lui-même.

Attribut JavaScript non défini

Définition et utilisation
L'attribut non défini est utilisé pour stocker la valeur non définie de JavaScript.

Syntaxe
non défini

Explication
Impossible d'utiliser une boucle for/in pour énumérer des propriétés non définies, ni d'utiliser le caractère d'opération de suppression pour le supprimer.
undefined n'est pas une constante et peut être défini sur d'autres valeurs.
Undefined sera également renvoyé lors de la tentative de lecture d'une propriété d'objet inexistante.

Conseils et notes
Astuce : Vous pouvez uniquement utiliser l'opérateur === pour tester si une valeur est indéfinie, car l'opérateur == considère que la valeur indéfinie est équivalente à nul .
Remarque : null signifie aucune valeur et undefined signifie une variable non déclarée, ou une variable qui a été déclarée mais n'a aucune valeur assignée, ou une propriété d'objet qui n'existe pas.

Exemple
Dans cet exemple nous détecterons qu'une des deux variables est indéfinie :

<script type="text/javascript">
var t1=""
var t2
if (t1===undefined) {document.write("t1 is undefined")}
if (t2===undefined) {document.write("t2 is undefined")}
</script>

Sortie :
t2 est undéfini

Juge undéfini :

<span style="font-size: small;">var tmp = undefined; 
if (typeof(tmp) == "undefined"){ 
alert("undefined"); 
}</span>

Juge nul :

<span style="font-size: small;">var tmp = null; 
if (!tmp && typeof(tmp)!="undefined" && tmp!=0){ 
alert("null"); 
} </span>

Juge NaN :

<span style="font-size: small;">var tmp = 0/0; 
if(isNaN(tmp)){ 
alert("NaN"); 
}</span>

Explication : Si NaN En le comparant à toute valeur (y compris elle-même) renvoie false, donc pour déterminer si une valeur est NaN, vous ne pouvez pas utiliser les opérateurs == ou ===.

Astuce : La fonction isNaN() est généralement utilisée pour détecter les résultats de parseFloat() et parseInt() afin de déterminer s'ils représentent des nombres légaux. Bien entendu, vous pouvez également utiliser la fonction isNaN() pour détecter les erreurs arithmétiques, comme l'utilisation de 0 comme diviseur.

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