Maison >interface Web >js tutoriel >Comparaisons JavaScript d'exploration quotidienne : comprendre `==`, `===` et plus encore

Comparaisons JavaScript d'exploration quotidienne : comprendre `==`, `===` et plus encore

WBOY
WBOYoriginal
2024-09-03 13:26:52333parcourir

Day xploring JavaScript Comparisons: Understanding `==`, `===`, and More

Les comparaisons JavaScript peuvent parfois être délicates, en particulier lorsqu'il s'agit de différents types de données comme null et indéfini. Aujourd'hui, nous allons explorer le fonctionnement des opérateurs de comparaison et les nuances entre == et === en JavaScript.

Comparaisons de base

Commençons par quelques comparaisons de base :

console.log(2 > 1);   // true
console.log(2 >= 1);  // true
console.log(2 < 1);   // false
console.log(2 == 1);  // false
console.log(2 != 1);  // true

Ces comparaisons sont simples et fonctionnent comme vous vous en doutez. Mais les choses deviennent intéressantes lorsque nous introduisons null et undefined dans le mix.

Comparaison de null avec des nombres

Voyons ce qui se passe lorsque nous comparons null avec des nombres :

console.log(null >= 0);  // true
console.log(null === 0); // false

Voici ce qui se passe :

  • Opérateur de comparaison (>=) : Lorsque vous utilisez un opérateur de comparaison tel que >=, JavaScript convertit null en 0 avant d'effectuer la comparaison. Ainsi, null >= 0 devient 0 >= 0, ce qui est vrai.

  • Égalité stricte (===) : L'opérateur d'égalité stricte n'effectue pas de conversion de type, donc null === 0 est faux car null n'est pas du même type que 0.

Comparaison d'un défini avec des nombres

Maintenant, regardons comment se comporte undefined :

console.log(undefined >= 0); // false
console.log(undefined == 0); // false
  • Comparaison avec undéfini : Contrairement à null, undéfini n'est pas converti en 0 lors de la comparaison. Au lieu de cela, le résultat est toujours faux car undéfini n'est pas considéré comme « pas un nombre » dans ce contexte.

  • Opérateur d'égalité (==) : Même lorsque vous utilisez l'opérateur d'égalité lâche, indéfini n'est pas égal à 0. En fait, indéfini n'est égal à null que lors de l'utilisation de ==.

Compréhension == vs ===

  • == (Loose Equality) : Cet opérateur convertit les opérandes du même type avant de faire la comparaison. C'est pourquoi null == 0 est faux, mais null == undefined est vrai.

  • === (Égalité stricte) : Cet opérateur vérifie à la fois la valeur et le type, sans aucune conversion. C'est pourquoi null === 0 est faux, et null === undefined est également faux.

Conclusion

Comprendre comment JavaScript gère les comparaisons est crucial pour éviter un comportement inattendu dans votre code. Que vous compariez des nombres, que vous traitiez de valeurs nulles ou indéfinies, ou que vous choisissiez entre == et ===, connaître les détails vous aidera à écrire du JavaScript plus prévisible et plus fiable.

Bon codage et à bientôt !!!

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