Maison >interface Web >js tutoriel >Valeurs de vérité et de fausseté: quand tout n'est pas égal en javascript
Les comparaisons d'égalité de JavaScript peuvent être délicates en raison de sa frappe lâche. Cet article explore les nuances des opérateurs doubles (==) et triples (===), et le concept de valeurs de vérité et de fausseté.
Comprendre ces concepts conduit à un code plus propre et plus prévisible.
Prise des clés:
false
, 0
, -0
, 0n
, ""
, null
, undefined
, et NaN
. Toutes les autres valeurs sont la vérité, y compris '0'
, 'false'
, []
, {}
, et fonctionnent. false == 0 == ''
est vrai, mais [] == true
est faux, et [] == false
est vrai! L'égalité stricte évite ces ambiguïtés. ===
) et convertissez explicitement en valeurs booléennes (Boolean()
ou !!
) lorsque cela est nécessaire. Cela garantit un comportement prévisible. Système de frappe de JavaScript:
Les variables JavaScript sont dactylographiées:
<code class="language-javascript">let x; x = 1; // x is a number x = '1'; // x is a string x = [1]; // x is an array</code>
L'égalité lâche (==) convertit les valeurs en chaînes avant la comparaison:
<code class="language-javascript">// all true 1 == '1'; 1 == [1]; '1' == [1];</code>
Égalité stricte (===) considère le type:
<code class="language-javascript">// all false 1 === '1'; 1 === [1]; '1' === [1];</code>
Les types primitifs de JavaScript sont: undefined
, null
, boolean
, number
, bigint
, string
, et symbol
. Tout le reste est un objet (y compris les tableaux).
Values Vérité vs Falsy:
Chaque valeur a un équivalent booléen:
false
, 0
, -0
, 0n
, ""
, null
, undefined
, NaN
Exemple:
<code class="language-javascript">if (value) { // value is truthy } else { // value is falsy }</code>
document.all
(déprécié) est également fausse.
Comparaisons de l'égalité lâche (==):
L'égalité lâche conduit à des résultats inattendus avec des valeurs de vérité / fausses:
Égalité stricte (===) Comparaisons:
L'égalité stricte fournit des résultats plus clairs:
Notez que NaN === NaN
est toujours false
.
Recommandations:
!x
au lieu de x == false
. ===
): fournit des résultats plus prévisibles. Boolean(x)
ou !!x
pour la conversion booléenne explicite. Conclusion:
Comprendre les valeurs de vérité / falsie et l'utilisation de l'égalité stricte améliore la fiabilité du code. Évitez les pièges des comparaisons lâches pour éviter les maux de tête de débogage.
FAQS (abrégé pour la brièveté):
Boolean()
fonction. ==
vs ===
: Loose vs égalité stricte; ===
évite la coercition de type. &&
) et ou (||
). 0
, ""
, null
, undefined
, NaN
, -0
. Boolean()
. 0
vs '0'
, les tableaux / objets vides sont la vérité. 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!