Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Operator Optional Chaining (?.) di JavaScript: Mengakses Properti dengan Aman

1 min read .
Operator Optional Chaining (?.) di JavaScript: Mengakses Properti dengan Aman

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 → Mengembalikan undefined jika objek null atau undefined.
  • objek?.properti?.subProperti → Mengembalikan undefined jika objek atau objek.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.

Lihat Juga

chevron-up