ES11 a adăugat un operator de coalescență nul, care este notat cu semne de întrebare duble, astfel: ??.

În acest articol, vom explora de ce este atât de util și cum să-l folosim.

Să începem.

Informații generale

În JavaScript, există un operator SAU de scurtcircuit ||.

|| operatorul returnează primul truthy valoare.

Următoarele sunt only six valori care sunt considerate a fi falsy valori în JavaScript.

  • fals
  • nedefinit
  • nul
  • “”(Șir gol)
  • NaN
  • 0

Deci, dacă ceva nu este în lista de mai sus, atunci va fi considerat un truthy valoare.

Truthy și Falsy valorile sunt valorile non-booleene care sunt constrânse true
sau false la efectuarea anumitor operațiuni.

const value1 = 1;
const value2 = 23;

const result = value1 || value2; 

console.log(result); // 1

Ca și || operatorul returnează primul truthy valoare, în codul de mai sus, result va fi valoarea stocată în value1 care este 1.

Dacă value1 este null, undefined, empty sau oricare alta falsy valoare, apoi următorul operand după || operatorul va fi evaluat și acesta va fi rezultatul expresiei totale.

const value1 = 0;
const value2 = 23;
const value3 = "Hello";

const result = value1 || value2 || value3; 

console.log(result); // 23

Aici, pentru că value1 este 0, value2 va fi verificat. Deoarece este o valoare adevărată, rezultatul întregii expresii va fi value2.

Problema cu || operator este că nu face distincție între false , 0 , un șir gol "", NaN , null și undefined . Toți sunt considerați ca falsy valori.

Dacă oricare dintre acestea este primul operand al || , atunci vom obține al doilea operand ca rezultat.

De ce JavaScript a avut nevoie de operatorul Nullish Coalescing

|| operatorul funcționează excelent, dar uneori dorim ca următoarea expresie să fie evaluată doar atunci când primul operand este doar unul sau altul null sau undefined.

Prin urmare, ES11 a adăugat operatorul de coalescență nul.

În expresie x ?? y,

  • Dacă x este fie null sau undefined numai atunci rezultatul va fi y.
  • Dacă x este nu null sau undefined atunci rezultatul va fi x.

Acest lucru va face ca verificările condiționate și codul de depanare să fie o sarcină ușoară.

Incearca-l tu insuti

let result = undefined ?? "Hello";
console.log(result); // Hello

result = null ?? true; 
console.log(result); // true

result = false ?? true;
console.log(result); // false

result = 45 ?? true; 
console.log(result); // 45

result = "" ?? true; 
console.log(result); // ""

result = NaN ?? true; 
console.log(result); // NaN

result = 4 > 5 ?? true; 
console.log(result); // false because 4 > 5 evaluates to false

result = 4 < 5 ?? true;
console.log(result); // true because 4 < 5 evaluates to true

result = [1, 2, 3] ?? true;
console.log(result); // [1, 2, 3]

Deci, din toate exemplele de mai sus, este clar că rezultatul operației x ?? y este y Doar cand x este fie undefined sau null.

În toate celelalte cazuri, rezultatul operației va fi întotdeauna x.

Concluzie

După cum ați văzut, operatorul de coalescență nul este cu adevărat util atunci când vă pasă doar de null sau undefined valoare pentru orice variabilă.

Începând cu ES6, există multe adăugări utile la JavaScript, cum ar fi

  • ES6 Destructurarea
  • Importați și exportați sintaxa
  • Funcții săgeată
  • Promisiuni
  • Asincronizare / așteptare
  • Operator de înlănțuire opțional

si mult mai mult.

Puteți afla totul despre toate caracteristicile ES6 + în detaliu în Stăpânirea JavaScript-ului modern carte.

Poti obțineți cartea JavaScript Mastering Modern cu 40% reducere.

Abonați-vă la buletin informativ săptămânal să vă alăturați altor 1000 de abonați pentru a primi sfaturi, trucuri, articole și oferte cu reduceri uimitoare direct în căsuța de e-mail.