Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Expressions et opérateurs
  5. ET logique (&&)

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

ET logique (&&)

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨juillet 2015⁩.

L'opérateur ET logique (&&) (conjonction logique) renvoie vrai si et uniquement si ses deux opérandes sonttrue ou équivalents àtrue. Il est généralement utilisé avec des valeurs booléennes et, quand c'est le cas, il renvoie une valeur booléenne. Toutefois, l'opérateur&& renvoie en fait la valeur d'un de ses opérandes et, si cet opérateur est utilisé avec des valeurs non-booléennes, il renverra une valeur non-booléenne.

Exemple interactif

const a = 3;const b = -2;console.log(a > 0 && b > 0);// Expected output: false

Syntaxe

js
expr1 && expr2;

Description

Siexpr1 peut être converti entrue, le résultat seraexpr2 ; sinon, ce seraexpr1.

Si une valeur peut être convertie entrue, elle peut être qualifiée detruthy. Si une valeur peut être convertie enfalse, on la qualifiera alors defalsy.

Parmi les expressions qui peuvent être converties enfalse, on a :

  • null ;
  • NaN ;
  • 0 ;
  • la chaîne de caractères vide ("" ou'' ou``) ;
  • undefined.

Bien que l'opérateur&& puisse être utilisé avec des opérandes qui ne soient pas des valeurs booléennes, il reste un opérateur booléen, car sa valeur de retour peut toujours être convertie enune valeur primitive booléenne. Pour convertir explicitement la valeur de retour (ou tout expression de façon plus générale) dans sa valeur booléenne correspondante, on pourra utiliser un doubleopérateur NON (!) ou le constructeurBoolean().

Évaluation en court-circuit

L'expression utilisant un ET logique est évaluée de gauche à droite. Le moteur cherche s'il est possible d'utiliser un court-circuit de la façon suivante :

(une expression équivalente à faux) && expr sera court-circuité pour fournir directement le résultat de l'expression équivalente à faux.

Cette notion de court-circuit indique que la partieexpr ci-avantn'est pas évaluée, tout effet de bord lié à cette évaluation n'aura pas lieu (par exemple, siexpr est un appel de fonction, la fonction n'est pas appelée). Ce fonctionnement a lieu, car la valeur du résultat peut d'office être déterminée par l'évaluation du premier opérande. Par exemple :

js
function A() {  console.log("A a été appelée");  return false;}function B() {  console.log("B a été appelée");  return true;}console.log(A() && B());// affichera "A a été appelée" dans la console via l'appel de la fonction// puis affichera false (la valeur du résultat de l'expression avec l'opérateur)// on voit que la fonction B n'est pas du tout appelée

Précédence des opérateurs

Les expressions suivantes peuvent sembler équivalentes mais ne le sont pas. En effet, l'opérateur&& est exécuté avant l'opérateur|| (voirl'article sur la précédence des opérateurs).

js
true || false && false; // renvoie true, car && est exécuté en premier(true || false) && false; // renvoie false, car la précédence par défaut ne s'applique pas avec les parenthèses

Exemples

Utiliser le ET logique

Le code suivant illustre quelques usages de l'opérateur ET logique&&.

js
a1 = true && true; // t && t renvoie truea2 = true && false; // t && f renvoie falsea3 = false && true; // f && t renvoie falsea4 = false && 3 == 4; // f && f renvoie falsea5 = "Chat" && "Chien"; // t && t renvoie "Chien"a6 = false && "Chat"; // f && t renvoie falsea7 = "Chat" && false; // t && f renvoie falsea8 = "" && false; // f && f renvoie ""a9 = false && ""; // f && f renvoie false

Règles de conversion booléennes

Convertir ET en OU

L'opération suivante, utilisant desbooléens :

js
bCondition1 && bCondition2;

sera toujours équivalente à :

js
!(!bCondition1 || !bCondition2);

Convertir OU en ET

L'opération suivante, utilisant desbooléens :

js
bCondition1 || bCondition2;

sera toujours équivalente à :

js
!(!bCondition1 && !bCondition2);

Retrait des parenthèses imbriquées

Les expressions logiques sont évaluées de gauche à droite, il est donc possible de retirer les parenthèses d'une expression complexe en suivant quelques règles.

L'opération composite suivant, qui utilise desbooléens :

js
bCondition1 || (bCondition2 && bCondition3);

sera toujours égale à :

js
bCondition1 || bCondition2 && bCondition3;

Spécifications

Specification
ECMAScript® 2026 Language Specification
# prod-LogicalANDExpression

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp