Secondo ECMA-262, parte 11.13, seguito una lista esaustiva di operatori di assegnazione composti: *= /= %= += -= <<= >>= >>>= &= ^= |=
.
Secondo la parte 11.11, var c = a || b
inserirà a
valore in c
if ToBoolean(a)
è vero e inserirà b
valore in c
altrimenti. Pertanto, l' OR logico viene spesso utilizzato come operatore di coalescenza, ad es
function (options) {
options = options || {};
}
Abbastanza frequenti, si fondono viene utilizzato per specificare il valore di default per la variabile, come è stato mostrato sopra: a = a || b
.
Sembra che operatore di assegnamento composto ||=
sarebbe davvero utile, che permette di scrivere il codice di cui sopra in modo più breve e più pulito: a ||= b
. Tuttavia, non è presente (sebbene *=
, +=
e altri operatori di assegnazione composti siano).
La domanda è: perché?
+=
, *=
, -=
, /=
, perché non dovrebbero %=
lavoro?).
angle %= 360
o vertexIndex %= numberOfVertices
(per l'elenco dei vertici di un poligono chiuso).
||=
e &&=
arriverà presto: "Potresti essere felice di sapere che per JS2 / ES4, vengono aggiunti anche || = e && =. || = è la maggior parte utile dei due, ma non c'è motivo di lasciare fuori la forma di assegnazione-op di && ". .