Operator Penugasan Logika JavaScript

Pada tutorial ini, Anda akan mempelajari tentang operator penugasan logika JavaScript, termasuk operator penugasan OR logika (||=), operator penugasan AND logika (&&=), dan operator penugasan nullish (??=).

ES2021 memperkenalkan tiga operator penugasan logika, yaitu:

  • Operator penugasan OR logika (||=)
  • Operator penugasan AND logika (&&=)
  • Operator penugasan nullish coalescing (??=)

Tabel berikut menunjukkan ekivalen dari operator penugasan logika:

Operator Penugasan LogikaOperator Logika
x
x &&= yx && (x = y)
x ??= yx ?? (x = y)

Operator Penugasan OR Logika

Operator penugasan OR logika (||=) menerima dua operand dan menugaskan operand kanan ke operand kiri jika operand kiri bernilai falsy:

x ||= y;

Dalam sintaks ini, operator ||= hanya menugaskan nilai y ke x jika x bernilai falsy. Contohnya:

let title;
title ||= 'tanpa judul';

console.log(title);

Output:

tanpa judul

Pada contoh ini, variabel title tidak terdefinisi, oleh karena itu, nilainya adalah falsy. Karena title falsy, operator ||= menugaskan ‘tanpa judul’ ke title. Output menunjukkan ‘tanpa judul’ seperti yang diharapkan. Contoh lain:

let title = 'JavaScript Keren';
title ||= 'tanpa judul';

console.log(title);

Output:

JavaScript Keren

Pada contoh ini, title adalah ‘JavaScript Keren’, sehingga bernilai truthy. Oleh karena itu, operator penugasan OR logika (||=) tidak menugaskan string ‘tanpa judul’ ke variabel title.

Operator penugasan OR logika:

x ||= y;

setara dengan pernyataan berikut yang menggunakan operator OR logika:

x || (x = y);

Seperti halnya operator OR logika, operator penugasan OR logika juga menggunakan short-circuiting. Ini berarti operator penugasan OR logika hanya melakukan penugasan ketika x bernilai falsy. Contoh berikut menggunakan operator penugasan logika untuk menampilkan pesan default jika elemen hasil pencarian kosong:

document.querySelector('.search-result').textContent ||= 'Maaf! Tidak ada hasil ditemukan';

Operator Penugasan AND Logika

Operator penugasan AND logika hanya menugaskan nilai y ke x jika x bernilai truthy:

x &&= y;

Operator penugasan AND logika juga menggunakan short-circuiting. Artinya,

x &&= y;

setara dengan:

x && (x = y);

Contoh berikut menggunakan operator penugasan AND logika untuk mengubah nama belakang pada objek orang jika nama belakang tersebut truthy:

let person = {
    firstName: 'Jane',
    lastName: 'Doe',
};

person.lastName &&= 'Smith';

console.log(person);

Output:

{firstName: 'Jane', lastName: 'Smith'}

Operator Penugasan Nullish Coalescing

Operator penugasan nullish coalescing hanya menugaskan nilai y ke x jika x bernilai null atau undefined:

x ??= y;

Setara dengan pernyataan berikut yang menggunakan operator nullish coalescing:

x ?? (x = y);

Contoh berikut menggunakan operator penugasan nullish coalescing untuk menambahkan properti yang hilang pada objek:

let user = {
    username: 'Satoshi'
};
user.nickname ??= 'anonim';

console.log(user);

Output:

{username: 'Satoshi', nickname:'anonim'}

Ringkasan

Pada contoh ini, user.nickname tidak terdefinisi, oleh karena itu, nilainya nullish. Operator penugasan nullish coalescing menugaskan string ‘anonim’ ke properti user.nickname.

  • Operator penugasan OR logika (x ||= y) hanya menugaskan y ke x jika x bernilai falsy.
  • Operator penugasan AND logika (x &&= y) hanya menugaskan y ke x jika x bernilai truthy.
  • Operator penugasan nullish coalescing (x ??= y) hanya menugaskan y ke x jika x bernilai nullish.
Share jika bermanfaat:
Abdan Zam Zam Ramadhan
Abdan Zam Zam Ramadhan

Seorang penggiat teknologi yang menfokuskan diri pada pengembangan aplikasi (web & android), DevOps, Data Tech, Natural Language Processing (NLP) dan ChatBot berbasis NLP. Sedang mendalami di Node.js dan ekosistemnya. Aktif sebagai konstributor library JS (open source) di NPM. Menulis berbagai artikel tips dan tutorial pemrograman di LampungDev.com.

Articles: 32