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é?