Operator Optional Chaining (?.) di JavaScript: Mengakses Properti dengan Aman
1
min read .
Updated on
Operator Optional Chaining (?.
) di JavaScript memudahkan akses properti dalam objek yang bersarang tanpa risiko error saat nilai null
atau undefined
. Fitur ini membuat kode lebih ringkas dan aman.
1. Sintaks
const hasil = objek?.properti;
const hasil = objek?.properti?.subProperti;
const hasil = objek?.properti?.[key];
const hasil = objek?.metode?.();
objek?.properti
→ Mengembalikanundefined
jikaobjek
null
atauundefined
.objek?.properti?.subProperti
→ Mengembalikanundefined
jikaobjek
atauobjek.properti
nullish.objek?.properti?.[key]
→ Mengakses properti secara dinamis dengan aman.objek?.metode?.()
→ Memanggil metode hanya jika ada.
2. Contoh Penggunaan
a. Mengakses Properti Bersarang
const user = {
profil: {
nama: 'Alice',
alamat: { kota: 'Wonderland' }
}
};
const kota = user.profil?.alamat?.kota;
console.log(kota); // Wonderland
const kodePos = user.profil?.alamat?.kodePos;
console.log(kodePos); // undefined
b. Memanggil Metode dengan Aman
const user = { profil: { getName: () => 'Alice' } };
const nama = user.profil?.getName?.();
console.log(nama); // Alice
const umur = user.profil?.getAge?.();
console.log(umur); // undefined
c. Mengakses Properti Dinamis
const key = 'nama';
const userName = user.profil?.[key];
console.log(userName); // Alice
d. Mengakses Elemen Array Opsional
const users = [{ nama: 'Alice' }, { nama: 'Bob' }];
const userKedua = users?.[1]?.nama;
console.log(userKedua); // Bob
const userKetiga = users?.[2]?.nama;
console.log(userKetiga); // undefined
e. Menggabungkan dengan Nullish Coalescing (??
)
const name = user.profil?.nama ?? 'Tamu';
console.log(name); // Alice
const age = user.profil?.age ?? 25;
console.log(age); // 25
3. Keuntungan Menggunakan Optional Chaining
- Mencegah Error: Tidak perlu banyak pengecekan null/undefined.
- Meningkatkan Readability: Kode lebih bersih dan mudah dibaca.
- Mempermudah Struktur Data Kompleks: Ideal untuk API dengan data opsional atau objek bersarang.
4. Dukungan Browser
Didukung di Chrome 80+, Firefox 74+, Safari 13.1+, Edge 80+. Tidak didukung di Internet Explorer.
Kesimpulan
Operator ?.
sangat berguna untuk mengakses properti bersarang dengan aman. Dengan optional chaining, kode lebih ringkas, aman dari runtime error, dan mudah dipelihara.