JavaScript

Optional Chaining dan Nullish Coalescing

Dua operator ini sering muncul bareng, dan sama-sama bikin kode yang berurusan dengan nilai yang mungkin kosong jadi jauh lebih ringkas.

Optional chaining (?.) dipakai untuk mengakses properti yang mungkin tidak ada, tanpa bikin error. Bila bagian sebelum ?. bernilai null atau undefined, ekspresinya berhenti dan langsung menghasilkan undefined.

JS
const user = { profil: null };

console.log(user.profil.nama);   // 💥 TypeError
console.log(user.profil?.nama);  // undefined, aman

Dulu kita harus menulis pengecekan berlapis seperti user && user.profil && user.profil.nama. Sekarang cukup user?.profil?.nama.

Nullish coalescing (??) dipakai untuk memberi nilai default, tapi hanya ketika nilainya benar-benar null atau undefined.

JS
const nama = user?.profil?.nama ?? 'Tamu';

Di sinilah ?? berbeda dari || yang mungkin sudah kamu kenal. || menganggap semua nilai falsy sebagai kosong, termasuk 0, '', dan false. Itu bisa jadi jebakan:

JS
const jumlah = 0;

console.log(jumlah || 10); // 10, padahal 0 itu nilai yang valid
console.log(jumlah ?? 10); // 0, sesuai yang kita mau

Jadi bila 0, string kosong, atau false adalah nilai yang sah dalam kasusmu, pakai ?? supaya tidak keliru ketimpa oleh default.