JavaScript Nullish Coalescing Operator (??)
1
min read .
Updated on
JavaScript ??
(Nullish Coalescing Operator) memudahkan penanganan null
dan undefined
, memberikan default value secara aman tanpa memengaruhi falsy values lain seperti 0
atau ''
.
1. Dasar Penggunaan
let username = null;
let name = username ?? 'Guest';
console.log(name); // Guest
- Mengembalikan operand kanan hanya jika kiri
null
atauundefined
.
2. Perbedaan ??
vs ||
let count = 0;
console.log(count || 10); // 10 → 0 dianggap falsy
console.log(count ?? 10); // 0 → 0 bukan null/undefined
3. Default Function Arguments
function getPrice(price, discount) {
discount = discount ?? 0;
return price - (price * discount);
}
console.log(getPrice(100, 0)); // 100
console.log(getPrice(100, null)); // 100
4. Chaining ??
let val = undefined ?? null ?? 'Default';
console.log(val); // Default
5. Kombinasi dengan Optional Chaining
let user = { profile: { name: 'Alice' } };
let bio = user.profile?.bio ?? 'Bio not available';
console.log(bio); // Bio not available
6. Perhatian
- Harus gunakan parentheses saat dicampur
||
atau&&
:
let value = (0 || undefined) ?? 'fallback'; // Benar
// 0 || undefined ?? 'fallback'; → Error
7. Dukungan Browser
- Chrome 80+, Firefox 72+, Safari 13.1+, Edge 80+
- Tidak didukung di Internet Explorer
Kesimpulan
??
membantu membedakan nullish dari falsy lain, membuat kode lebih bersih, aman, dan mudah dibaca.