Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

JavaScript Lanjutan

Pelajaran 6 dari 22

Objek, Map, dan Set

Optional chaining dan nullish coalescing

Setelah pelajaran ini kamu bisa membaca data bersarang yang mungkin kosong dengan ?. dan memberi nilai cadangan yang tepat dengan ??.

±13 menitDiperiksa 28 Sep 2026

Materi

Data dari formulir atau dari server sering tidak lengkap: pelanggan tanpa alamat, pesanan tanpa kupon. Membaca pelanggan.alamat.kota ketika alamat tidak ada menghentikan program. Operator optional chaining, ?., berhenti dan menghasilkan undefined begitu sisi kirinya null atau undefined, tanpa melempar error. Bentuknya ada tiga: obj?.prop untuk property, obj?.[kunci] untuk kunci dinamis atau indeks, dan fungsi?.() untuk memanggil fungsi yang mungkin tidak ada.

Pasangannya adalah ??, nullish coalescing. a ?? b menghasilkan b hanya bila a null atau undefined. Operator || berbeda: ia mengganti semua nilai yang dianggap salah, termasuk 0, teks kosong, dan false. Untuk stok 0, diskon 0, atau catatan kosong yang memang sah, || memberi nilai cadangan yang keliru, sedangkan ?? mempertahankannya.

const pesanan = { kode: "P-10", kupon: null, diskon: 0 };
pesanan.kupon?.kode;             // undefined, bukan TypeError
pesanan.pelanggan?.alamat?.kota; // undefined
pesanan.diskon || 5;             // 5  (0 dianggap salah)
pesanan.diskon ?? 5;             // 0  (0 bukan null/undefined)
pesanan.kupon?.kode ?? "Tanpa kupon"; // "Tanpa kupon"

Kedua operator dipakai bersama di satu ekspresi: ?. menelusuri jalan ke data yang mungkin tidak ada, dan ?? memberi teks pengganti di ujungnya. ?. hanya ditaruh di titik yang memang boleh kosong. Menaruhnya di setiap titik menyembunyikan data yang seharusnya selalu ada, sehingga kesalahan pengisian data tidak pernah memunculkan pesan.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Berapa hasil dua ekspresi ini secara berurutan: 0 || 10 dan 0 ?? 10?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke