Introduction


You may have already met the ?? operator during your JavaScript coding sessions.



const result = first ?? second;

If you already wondered what it means, and why it is different from the || operator, you should learn a few interesting things in this post.



Context


In JavaScript, the logical operator || returns the first truthy value.


6 values only are considered as falsy values:



  • false
  • undefined
  • null
  • '' (empty string)
  • NaN
  • 0


Here are some examples of results obtained with || operator:



const nullValue = null; // falsy
const emptyString = ''; // falsy
const zero = 0; // falsy
const randomNumber = 12; // truthy
const randomString = 'hello'; // truthy

nullValue || randomNumber // 12
nullValue || emptyString // ''
emptyString || nullValue // null
emptyString || randomNumber // 12
zero || randomNumber // 12
nullValue || randomNumber || randomString // 12




Difference with ??


?? pperator ("Nullish coalescing operator") returns the first value that is not null nor undefined.


If the value you want to get can be falsy (example: you may want to get a result equal to 0), you can use the ?? operator.


Here is a comparison of the results obtained with ??:



Conclusion


To sum up, in the expression x ?? y :



  • if x is null or undefined, result will be y
  • if x is different from null and different from undefined, result will be x.


The ?? operator is really useful when you only need to test the null or undefined value.



--------------------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------- Version française ---------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------------------------------------



Introduction


Vous avez peut-être déjà rencontré l’opérateur ?? lors de vos développements en JavaScript.








const result = first ?? second;


Si vous vous êtes déjà demandé à quoi il servait, et en quoi il différait de l’opérateur logique ||, vous devriez en apprendre un peu plus en lisant cet article.








Contexte


En Javascript, il existe un opérateur logique OU, noté ||. Il retourne la première valeur équivalente à true.


Seules ces 6 valeurs sont considérées comme équivalentes à false :







  • false
  • undefined
  • null
  • '' (texte vide)
  • NaN
  • 0


Voici quelques exemples de résultats obtenus avec l’opérateur || :








const valeurNulle = null; // équivalent à false
const texteVide = ''; // équivalent à false
const zero = 0; // équivalent à false
const unNombre = 12;
const unTexte = 'coucou';

valeurNulle || unNombre // 12
valeurNulle || texteVide // ''
texteVide || valeurNulle // null
texteVide || unNombre // 12
zero || unNombre // 12
valeurNulle || unNombre || unTexte // 12








La différence avec ??


L’opérateur ?? (en français "opérateur de coalescence des nuls", et en anglais "Nullish coalescing operator") renvoie quant à lui la première valeur qui n’est ni null, ni undefined.


En d’autres termes, si le résultat que vous attendez peut être équivalent à false, mais que vous souhaitez le conserver, vous pouvez utiliser l’opérateur ??.


Voici un comparatif des résultats obtenus avec ?? pour les exemples du paragraphe précédent.









Conclusion


En résumé, dans l’expression x ?? y :







  • si x est null ou undefined, le résultat sera y
  • si x est différent de null et différent de undefined, le résultat sera x.


L’opérateur ?? est donc très utile lorsque vous avez uniquement besoin de tester qu’une valeur est null ou undefined.

"