Menurut ECMA-262, bagian 11.13, berikut adalah daftar lengkap dari operator penugasan senyawa: *= /= %= += -= <<= >>= >>>= &= ^= |=
.
Menurut bagian 11.11, var c = a || b
akan memasukkan a
nilai ke dalam c
jika ToBoolean(a)
benar dan akan memasukkan b
nilai ke dalam c
sebaliknya. Dengan demikian, logika OR sering digunakan sebagai operator gabungan, misalnya
function (options) {
options = options || {};
}
Cukup sering, menyatu digunakan untuk menentukan nilai default untuk variabel, seperti yang ditunjukkan di atas: a = a || b
.
Tampaknya operator penugasan senyawa ||=
akan sangat berguna, yang memungkinkan untuk menulis kode di atas secara lebih pendek dan lebih bersih: a ||= b
. Namun, tidak ada di sana (meskipun *=
, +=
dan operator penugasan majemuk lainnya).
Pertanyaannya adalah, mengapa?
+=
, *=
, -=
, /=
, kenapa tidak %=
bekerja?).
angle %= 360
atau vertexIndex %= numberOfVertices
(untuk daftar titik dari poligon tertutup).
||=
dan &&=
akan segera hadir: "Anda mungkin senang mengetahui bahwa untuk JS2 / ES4, || = dan && = ditambahkan juga. || = yang paling banyak berguna dari keduanya tetapi tidak ada alasan untuk meninggalkan tugas-op bentuk && keluar. " .