JavaScript offre des capacités robustes pour comparer les nombres, un aspect crucial de la construction d’applications dynamiques et réactives. Ce guide explore les techniques fondamentales pour comparer efficacement les valeurs numériques.
Table des matières
- Opérateurs de comparaison
- Opérateurs logiques
- Enchaînement des comparaisons
- Gestion des cas spéciaux (NaN, Infinity)
- Conclusion
Opérateurs de comparaison
JavaScript fournit six opérateurs de comparaison principaux pour évaluer les relations numériques. Ces opérateurs retournent une valeur booléenne (true
ou false
).
Opérateur | Description | Exemple | Résultat |
---|---|---|---|
=== |
Égalité stricte (vérifie à la fois la valeur et le type) | 5 === 5 |
true |
!== |
Inégalité stricte | 5 !== "5" |
true |
> |
Supérieur à | 10 > 5 |
true |
< |
Inférieur à | 5 < 10 |
true |
>= |
Supérieur ou égal à | 10 >= 10 |
true |
<= |
Inférieur ou égal à | 5 <= 10 |
true |
Pourquoi l’égalité stricte (===
) ? L’utilisation de l’égalité stricte est généralement recommandée pour éviter les conversions de type inattendues. L’opérateur d’égalité lâche (==
) effectue une conversion de type avant la comparaison, ce qui peut entraîner des erreurs.
5 == "5"; // true (conversion de type)
5 === "5"; // false (égalité stricte ; types différents)
Opérateurs logiques
Les opérateurs logiques combinent plusieurs comparaisons, créant des instructions conditionnelles complexes.
Opérateur | Description | Exemple | Résultat (si num1 = 10, num2 = 5) |
---|---|---|---|
&& |
ET logique (les deux conditions doivent être vraies) | (num1 > 5) && (num2 < 10) |
true |
|| |
OU logique (au moins une condition doit être vraie) | (num1 0) |
true |
! |
NON logique (inverse la valeur booléenne) | !(num1 === num2) |
true |
let score = 85;
if (score >= 90 && score = 80 && score < 90) {
console.log("Note B");
} else {
console.log("En dessous de la note B");
}
Enchaînement des comparaisons
Pour un code plus propre, enchaînez les comparaisons lorsque vous vérifiez si un nombre se situe dans une plage :
let age = 25;
if (18 <= age && age < 65) {
console.log("Adulte");
}
Gestion des cas spéciaux (NaN, Infinity)
NaN
(Not a Number) et Infinity
nécessitent une considération spéciale :
NaN
n’est jamais égal à lui-même :NaN === NaN
estfalse
. UtilisezisNaN()
pour vérifierNaN
.Infinity
et-Infinity
ont des comportements de comparaison spécifiques.
isNaN(Number("hello")); // true
Infinity > 1000; // true
-Infinity < -1000; // true
Conclusion
Maîtriser les comparaisons numériques en JavaScript est fondamental pour construire des applications robustes. En utilisant efficacement les opérateurs de comparaison et logiques, et en comprenant les cas spéciaux, vous pouvez créer un code hautement fonctionnel et fiable.