L'opérateur OR || en JavaScript est un opérateur logique utilisé pour évaluer deux expressions booléennes. Il retourne la première valeur truthy qu'il rencontre, ou, si toutes les valeurs sont falsy, il retourne la dernière valeur.
expression1 || expression2
- Si
expression1est truthy, elle est immédiatement renvoyée, etexpression2n'est même pas évaluée. - Si
expression1est falsy, l'opérateur continue avecexpression2et retourne cette dernière valeur, qu'elle soit truthy ou falsy.
let a = 0;
let b = "Bonjour";
let result = a || b;
console.log(result); // "Bonjour" let a = null;
let b = undefined;
let c = "Salut";
let result = a || b || c;
console.log(result); // "Salut"Ici, a et b sont tous les deux falsy (null et undefined), donc JavaScript retourne la première valeur truthy, qui est "Salut".
L'opérateur || est souvent utilisé pour attribuer une valeur par défaut à une variable si elle est indéfinie ou contient une valeur falsy.
let nomUtilisateur = null;
let nomAffiche = nomUtilisateur || "Anonyme";
console.log(nomAffiche); // "Anonyme"Ici, comme nomUtilisateur est null (falsy), la valeur "Anonyme" est utilisée comme valeur par défaut.
Le court-circuitage se produit lorsque la première valeur truthy est rencontrée, les expressions suivantes ne sont pas évaluées.
let x = 5;
let result = x || console.log("Cette ligne ne sera pas exécutée");
console.log(result); // 5Dans cet exemple, comme x est truthy (5), le second opérande (console.log(...)) n'est jamais exécuté.
let a = 0;
let b = "";
let c = null;
let d = false;
let e = "valeur";
let result = a || b || c || d || e;
console.log(result); // "valeur"Ici, a, b, c, et d sont tous falsy, donc JavaScript continue jusqu'à trouver e, qui est truthy et retourne "valeur".
L'opérateur || peut conduire à des comportements inattendus si des valeurs falsy comme 0, "", ou false sont des valeurs valides que vous voulez conserver.
let points = 0;
let score = points || 10;
console.log(score); // 10Ici, on pourrait s'attendre à ce que score soit 0, mais comme 0 est falsy, l'opérateur || le remplace par la valeur 10. Si 0 est une valeur valide dans votre contexte, il vaut mieux utiliser l'opérateur de nullish coalescing (??), qui ne remplace que null ou undefined.
- L'opérateur OR (
||) retourne la première valeur truthy qu'il rencontre, ou la dernière si toutes les valeurs sont falsy. - Il est souvent utilisé pour fournir des valeurs par défaut.
- Faites attention si vous voulez conserver des valeurs falsy comme
0ou"".
L'opérateur || est un outil puissant pour simplifier les vérifications et définir des valeurs par défaut en JavaScript.