Secondo ECMA-262, parte 11.13, di seguito è riportato l'elenco completo degli operatori di assegnazione composta: *= /= %= += -= <<= >>= >>>= &= ^= |=
.
Secondo la parte 11.11, var c = a || b
metterà il valore a
in c
se ToBoolean(a)
è vero e metterà il valore b
in c
altrimenti. In quanto tale, il OR logico viene spesso utilizzato come operatore di coalescenza, ad es.
function (options) {
options = options || {};
}
In modo abbastanza frequente, la coalescenza viene utilizzata per specificare il valore predefinito per la variabile, come mostrato sopra: a = a || b
.
Sembra che l'operatore di assegnazione composta ||=
sarebbe davvero utile, consentendo di scrivere il codice sopra in modo più breve e più pulito: a ||= b
. Tuttavia, non è lì (sebbene *=
, +=
e altri operatori di assegnazione composti siano).
La domanda è, perché?