Operator ||
dan ??
dalam JavaScript memiliki perbedaan utama terkait cara mereka menangani nilai-nilai tertentu. Berikut adalah perbedaan antara keduanya:
1. Operator ||
(Logical OR):
- Digunakan untuk short-circuit evaluation dengan memeriksa dua nilai. Jika nilai pertama adalah falsy (misalnya
false
,0
,null
,undefined
,NaN
,""
), maka akan mengembalikan nilai kedua. Biasanya digunakan untuk memberikan nilai default saat nilai pertama tidak diharapkan.
Contoh:
2. Operator ??
(Nullish Coalescing Operator):
- Digunakan untuk memberikan nilai default hanya jika nilai pertama adalah
null
atauundefined
. Berbeda dengan||
, operator ini tidak menganggap nilai seperti0
,false
, atau""
sebagai falsy. Ini berguna ketika nilai
0
,false
, atau string kosong (""
) dianggap valid dan tidak ingin diganti dengan nilai default.Contoh:
Perbedaan Utama:
||
: Mengembalikan nilai kedua jika yang pertama adalah falsy (termasuk0
,false
,""
,null
,undefined
, dll.).??
: Mengembalikan nilai kedua hanya jika yang pertama adalah null atau undefined (tidak mengubah0
,false
, atau""
).
Contoh:
Kapan Menggunakan:
- Gunakan
||
ketika ingin mengganti semua nilai falsy dengan nilai default. - Gunakan
??
ketika hanya ingin menggantinull
atauundefined
dengan nilai default.