Maison > interface Web > js tutoriel > Pourquoi « 0 » est-il égal à faux, mais c'est vrai lorsqu'il est testé avec if en JavaScript ?

Pourquoi « 0 » est-il égal à faux, mais c'est vrai lorsqu'il est testé avec if en JavaScript ?

Patricia Arquette
Libérer: 2024-11-04 19:19:02
original
1050 Les gens l'ont consulté

Why Does

Puzzle d'égalité JavaScript : "0" est faux, mais c'est vrai lorsqu'il est testé avec if

Les opérateurs d'égalité JavaScript peuvent conduire à des résultats inattendus, comme le démontre le code suivant :

console.log("0" == false); // true
console.log(false == "0"); // true
Copier après la connexion

Ce code implique que la chaîne "0" est équivalente à la valeur booléenne false. Cependant, le code suivant affiche « ha » alors que la condition est « 0 » :

if ("0") console.log("ha"); // ha
Copier après la connexion

Pourquoi cela se produit-il ?

Pour comprendre ce comportement, nous avons besoin pour comprendre les valeurs véridiques et fausses de JavaScript. En JavaScript, les valeurs suivantes sont fausses :

false
0
""
null
undefined
NaN
Copier après la connexion

Toutes les autres valeurs sont véridiques.

Dans les deux premières lignes de l'extrait de code, l'opérateur d'égalité (==) effectue une coercition de type pour comparer la chaîne "0" avec la valeur booléenne false. Puisque "0" est une valeur fausse, elle est considérée comme égale à faux.

Cependant, l'instruction if dans la troisième ligne de code utilise l'égalité stricte (===), qui ne prend en compte que les valeurs du même type. comme égaux. Puisque "0" est une chaîne et false est un booléen, la condition est évaluée comme fausse.

Pour éviter toute confusion, il est recommandé d'utiliser l'égalité stricte (===) lors de la comparaison de valeurs en JavaScript. Le code modifié suivant affichera « rien » :

if ("0" === false) console.log("ha"); // nothing
Copier après la connexion

En comprenant la différence entre l'égalité (==) et l'égalité stricte (===), vous pouvez écrire du code JavaScript qui compare avec précision les valeurs.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal