0Pricing
JavaScript Academy · Lekcja

Nullish coalescing z ??

Proszę podawać wartości domyślne tylko dla null i undefined.

Nullish coalescing z ?? to bezpłatna lekcja JavaScript Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej JavaScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs JavaScript Academy zawiera 4 lekcji w sumie.

Podawanie wartości domyślnych

Często potrzebna jest wartość zastępcza, gdy brakuje danej wartości. Operator koalescencji wartości nullish pozwala w przejrzysty sposób podawać wartości domyślne tylko wtedy, gdy jest to potrzebne.

const name = undefined;
console.log(name ?? "Guest"); // "Guest"

Operator ??

Operator dwóch znaków zapytania zwraca wartość z prawej strony tylko wtedy, gdy lewa strona ma wartość null lub undefined.

console.log(null ?? "fallback");      // "fallback"
console.log(undefined ?? "fallback"); // "fallback"
console.log("hi" ?? "fallback");      // "hi"

Dlaczego nie używać ||

Operator logiczny OR || używa wartości zastępczej dla każdej wartości falsy, w tym 0, "" i false, co często prowadzi do błędów w przypadku rzeczywistych danych.

console.log(0 || 10);  // 10  (probably unwanted)
console.log(0 ?? 10);  // 0   (keeps the real value)

Przypadek pustego ciągu

Operator || zastępuje celowo ustawiony pusty ciąg, natomiast operator ?? go zachowuje, ponieważ "" nie jest wartością nullish.

const note = "";
console.log(note || "none"); // "none"
console.log(note ?? "none"); // ""

Wartość false jest zachowywana

Prawdziwa wartość false zostaje zachowana przez ??, ale zostałaby zastąpiona przez ||.

const enabled = false;
console.log(enabled ?? true); // false
console.log(enabled || true); // true

Bezpieczne odczytywanie konfiguracji

Operator ?? idealnie nadaje się do ustawień, w których 0 lub pusty ciąg są prawidłowymi opcjami, które użytkownik może wybrać celowo.

function getVolume(settings) {
  return settings.volume ?? 50;
}
console.log(getVolume({ volume: 0 })); // 0

Działa ze zmiennymi

Działa z dowolnymi wyrażeniami, zwracając pierwszy operand, który nie ma wartości nullish.

let cached = null;
const value = cached ?? computeValue();
function computeValue() { return 99; }
console.log(value); // 99

Ewaluacja z krótkim spięciem

Podobnie jak || i &&, operator ?? stosuje ewaluację z krótkim spięciem: jeśli lewa strona nie ma wartości nullish, prawa strona nigdy nie jest obliczana.

function side() { console.log("called"); return 1; }
const x = "ready" ?? side(); // side() never runs
console.log(x);

Nie można go bezpośrednio łączyć z && ani ||

Łączenie ?? z && lub || bez nawiasów powoduje błąd składni, aby uniknąć niejednoznaczności.

const a = true, b = null;
// const c = a || b ?? 1; // SyntaxError
const c = (a || b) ?? 1;
console.log(c);

Domyślne parametry funkcji a ??

Parametry domyślne mają zastosowanie tylko wtedy, gdy argument ma wartość undefined. Operator ?? obsługuje również jawnie przekazaną wartość null.

function greet(name = "Guest") { return "Hi " + name; }
console.log(greet(null)); // "Hi null"
function greet2(name) { return "Hi " + (name ?? "Guest"); }
console.log(greet2(null)); // "Hi Guest"

Kiedy wybrać który operator

Operatora ?? należy używać, gdy 0, "" lub false są prawidłowymi wartościami, które trzeba zachować. Operatora || należy używać tylko wtedy, gdy każda wartość falsy powinna zostać zastąpiona.

const retries = 0;
console.log(retries ?? 3); // 0 kept

Szybkie sprawdzenie

Porównaj operatory.

Podsumowanie

Operator ?? zwraca prawą stronę tylko wtedy, gdy lewa strona ma wartość null lub undefined, zachowując 0, "" i false. Dzięki temu jest bezpieczniejszy niż || przy podawaniu wartości domyślnych dla rzeczywistych danych. Stosuje ewaluację z krótkim spięciem i nie można go łączyć z &&/|| bez użycia nawiasów.

Często zadawane pytania

Czy lekcja „Nullish coalescing z ??” jest bezpłatna?

Tak — pełny tekst „Nullish coalescing z ??” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu JavaScript Academy, przejdź na CoddyKit PRO. Kurs JavaScript Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Nullish coalescing z ??”?

Proszę podawać wartości domyślne tylko dla null i undefined. Ćwiczysz JavaScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć JavaScript Academy?

Nie wymagamy żadnego doświadczenia. JavaScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Nullish coalescing z ??”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji JavaScript Academy?

Tak. Każda lekcja JavaScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Optional chaining z operatorem ?.
  2. Nullish coalescing z ??
  3. Łączenie ?. i ??
  4. Opcjonalne wywołania i dostęp indeksowany
← Powrót do JavaScript Academy