DEV Community

Cover image for Nullish Coalescing Operator vs Logical Or Operator
Vincent
Vincent

Posted on • Edited on

Nullish Coalescing Operator vs Logical Or Operator

Le saviez-vous ?

Quelle est la différence entre ?? et || ?

 

Nullish Coalescing Operator - ??

De son doux nom français “Opérateur de coalescence des nuls”, a ?? b permet de renvoyer le terme a si ce dernier n’est pas ni null ni undefined. Dans le cas inverse l’opérateur renvoie le terme b.

Voici un exemple qui permet de redéfinir cet opérateur en JavaScript.

const result = a ?? b
Enter fullscreen mode Exit fullscreen mode
const nullishCoalescingOperator = (a, b) => {
    if (a !== null && a !== undefined) {
        return a
    } 
    return b;
}

const result = nullishCoalescingOperator(a,b);
Enter fullscreen mode Exit fullscreen mode

 

Logical Or Operator - ||

L’opérateur OU logique est similaire à l’opérateur de coalescence des nuls à l’exception que ce dernier test si le terme a est falsy.

Pour rappel voici une liste non exhaustive des valeurs falsy en JavaScript :

  • null
  • undefined
  • false
  • NaN
  • 0
  • “”

Voici un exemple qui permet de redéfinir cet opérateur en JavaScript.

const result = a || b
Enter fullscreen mode Exit fullscreen mode
const orOperator = (a,b) => {
    if (a) {
        return a;
    }
    return b;
}
Enter fullscreen mode Exit fullscreen mode

 

Mémo

Pour finir, voici un tableau qui résume le retour des fonctions ?? et ||

tableau récap fonctions

 

Sources

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR

Top comments (0)