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
const nullishCoalescingOperator = (a, b) => {
if (a !== null && a !== undefined) {
return a
}
return b;
}
const result = nullishCoalescingOperator(a,b);
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
const orOperator = (a,b) => {
if (a) {
return a;
}
return b;
}
Mémo
Pour finir, voici un tableau qui résume le retour des fonctions ?? et ||
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