Opérateurs de comparaison

Les opérateurs de comparaison comparent les valeurs de deux opérandes et évaluent si le qu'ils forment est true ou false. L'exemple suivant utilise la classe l'opérateur stricte égalité (===) pour comparer deux opérandes: l'expression ; 2 + 2 et la valeur 4. Comme le résultat de l'expression et le nombre 4 sont identiques, cette expression renvoie true:

2 + 2 === 4
> true

Taper coercition et égalité

Deux des opérateurs de comparaison les plus fréquemment utilisés sont == pour les égalités faibles et === pour une égalité stricte. == effectue une comparaison vague entre deux valeurs en forçant les opérandes à correspondre aux types de données, si possible. Pour Par exemple, 2 == "2" renvoie true, même si la comparaison est en cours entre une valeur numérique et une valeur de chaîne.

2 == 2
> true

2 == "2"
> true

Il en va de même pour !=, qui renvoie true uniquement si les opérandes étant comparés ne sont pas vaguement égaux.

2 != 3
> true

2 != "2"
> false

Les comparaisons strictes à l'aide de === ou !== n'effectuent pas de coercition de type. Pour une une comparaison stricte pour évaluer la valeur true, les valeurs comparées doivent avoir le même type de données. C'est pourquoi 2 == "2" renvoie true, mais 2 === "2". renvoie false:

2 === 3
> false

2 === "2"
> false

Pour éliminer toute ambiguïté pouvant résulter de la coercition automatique, utilisez === chaque fois que possible.

Opérateur Description Utilisation Résultat
=== Strictement égal 2 === 2 true
!== Pas strictement égal 2 !== "2" true
== Égal 2 == "2" true
!= Not Equal (Non égal à) 2 != "3" true
> Supérieur à 3 > 2. true
>= Supérieur ou égal à 2 >= 2 true
< Inférieur à 2 < 3. true
<= Inférieur ou égal à 2 <= 3 true

Vrai et faux

Dans JavaScript, toutes les valeurs sont implicitement true ou false, et peuvent être forcées la valeur booléenne correspondante, par exemple en utilisant la chaîne un comparateur de prix. Forcer l'utilisation d'un ensemble limité de valeurs sur false:

  • 0
  • null
  • undefined
  • NaN
  • Une chaîne vide ("")

Toutes les autres valeurs sont converties par coercition en true, y compris toute chaîne contenant une ou plusieurs et tous les nombres non nuls. Ceux-ci sont communément appelés « vérité » et "falsifié" valeurs.

"My string" == true
> true

100 == true
> true

0 == true
> false

Opérateurs logiques

Utilisez les opérateurs logiques AND (&&), OR (||) et NOT (!) pour contrôler le flux d'un script en fonction de l'évaluation d'au moins deux instructions conditionnelles:


2 === 3 || 5 === 5;
> true

2 === 2 && 2 === "2"
> false

2 === 2 && !"My string."
> false

Une expression logique NOT (!) annule la valeur véridique ou falsifiée d'un opérande, dont l'évaluation donne true si l'opérande renvoie la valeur false, et false si l'évaluation de l'opérande est true:


true
> true

!true
> false

!false
> true

Utiliser l'opérateur logique NOT (!) devant un autre type de données, comme un un nombre ou une chaîne, convertit cette valeur en valeur booléenne et inverse la valeur valeur erronée du résultat.

"string"
> "string"

!"string"
> false

0
> 0

!0
> true

Il est courant d'utiliser deux opérateurs NOT pour forcer rapidement les données dans leur valeur booléenne correspondante:

!!"string"
> true

!!0
> false

Les opérateurs logiques AND et OR n'effectuent pas de coercition seuls. Ils renvoie la valeur de l'un des deux opérandes en cours d'évaluation, avec le nombre déterminé par cette évaluation.

L'opérateur logique AND (&&) ne renvoie le premier de ses deux opérandes que si cet opérande prend la valeur false, et le deuxième opérande dans le cas contraire. Pour comparer sur des valeurs booléennes, la fonction renvoie true uniquement si les opérandes des deux côtés de l'opérateur logique AND valent true. Si l'un des côtés prend la valeur false, renvoie false.

true && false
> false

false && true
> false

false && false
> false

true && true
> true

Lorsque && est utilisé avec deux opérandes non booléens, le premier opérande est renvoyé. inchangée s'il peut être forcé à false. Si le premier opérande peut être forcé à true, le deuxième opérande est renvoyé tel quel:

false && "My string"
> false

null && "My string"
> null

"My string" && false
> false

"My string" && "My second string"
> "My second string"

2 === 2 && "My string"
> "My string"

L'opérateur logique OR (||) ne renvoie le premier de ses deux opérandes que si cet opérande prend la valeur true, et le deuxième opérande dans le cas contraire. Pour comparer est évaluée sur des valeurs booléennes, ce qui signifie qu'elle renvoie true si l'un des opérandes prend la valeur true. Si aucun des deux côtés ne prend la valeur true, la fonction renvoie false:

true || false
> true

false || true
> true

true || true
> true

false || false
> false

Lorsque vous utilisez || avec deux opérandes non booléens, le premier opérande est renvoyé. inchangée s'il peut être forcé à true. Si le premier opérande peut être forcé à false, le deuxième opérande est renvoyé tel quel:

false || "My string"
> "My string"

null || "My string"
> "My string"

"My string" || false
> "My string"

"My string" || "My second string"
> "My string"

2 === 2 || "My string"
> true

Opérateur de fusion de valeurs nulles

Introduit en ES2020, l'opérateur "coalescing nulliste" (??) ne renvoie le premier opérande que si cette L'opérande a une valeur autre que null ou undefined. Sinon, il renvoie le deuxième opérande.

null ?? "My string"
> "My string"

undefined ?? "My string"
> "My string"

true ?? "My string";
> true

?? est semblable à un opérateur logique OU, mais est plus strict dans la façon dont le premier opérande est évalué. || renvoie le deuxième opérande pour toute expression pouvant être forcé vers false, y compris undefined et null. ?? renvoie la seconde opérande lorsque le premier opérande est autre que null ou undefined, même s'il peut être contraint à false:

0 ?? "My string";
> 0

false ?? "My string";
> false

undefined ?? "My string";
> "My string"

Opérateurs d'affectation logique

Utilisez des opérateurs d'affectation pour attribuer la valeur d'un deuxième opérateur à un premier . L'exemple le plus courant est un signe égal unique (=), utilisé pour attribuer une valeur à une variable déclarée ;

Utiliser des opérateurs d'affectation logique pour attribuer une valeur à une variable de manière conditionnelle en fonction de la valeur véridique ou falsifiée de cette variable.

L'opérateur logique d'attribution AND (&&=) évalue le deuxième opérande et attribue au premier opérande si uniquement si le premier opérande est évalué comme suit : true : en effet, "si le premier opérande est vrai, attribuez-lui la valeur de le deuxième opérande : »

let myVariable = false;
myVariable
&&= 2 + 2;
> false

myVariable
= true;
myVariable
&&= 2 + 2;
> 4

La valeur vérité ou fausse du premier opérande détermine si une attribution est effectuée. Toutefois, en essayant d'évaluer le premier opérande à l'aide d'une comparaison renvoie une valeur booléenne true ou false, qui ne peut pas se voir attribuer un :

let myVariable = 5;
myVariable
> 2 &&= "My string"
> SyntaxError: Invalid left-hand side in assignment

L'opérateur d'affectation logique OU (||=) évalue le deuxième opérande et attribuer au premier opérande si le premier opérande prend la valeur false : « Si le premier opérande est faux, attribuez-lui la valeur du deuxième opérande à la place :"

let myVariable = false;
myVariable
||= 2 + 2;
> 4

myVariable
= true;
myVariable
||= 2 + 2;
> true

Testez vos connaissances

Quel opérateur indique "strictement égal" ?

!=
===
=
==