Według ECMA-262, strony 11.13 następuje to wyczerpująca lista związków operatorów przypisania: *= /= %= += -= <<= >>= >>>= &= ^= |=
.
Zgodnie z częścią 11.11, var c = a || b
wprowadzi a
wartość do c
jeżeli ToBoolean(a)
jest prawdą i wprowadzi b
wartość do c
inaczej. Jako taki, logiczny OR jest często używany jako operator koalescencji, np
function (options) {
options = options || {};
}
Często wystarczy, COALESCE służy do określenia wartości domyślnej zmiennej, jak wykazano powyżej: a = a || b
.
Wydaje się, że związek operator przypisania ||=
byłaby bardzo przydatna, umożliwiając napisać powyższy kod w krótszym i czystszego sposób: a ||= b
. Jednakże, nie ma (chociaż *=
, +=
a operatorami przypisania czynnych wynoszą).
Pytanie brzmi: dlaczego?
+=
, *=
, -=
, /=
, dlaczego nie %=
działa?).
angle %= 360
Lub vertexIndex %= numberOfVertices
(dla listy wierzchołków zamkniętego wielokąta).
||=
i &&=
już wkrótce: „Być może z przyjemnością dowiesz się, że do JS2 / ES4 dodawane są również || = i && =. || = jest najbardziej przydatne z tych dwóch, ale nie ma powodu, aby pozostawić formę && przydziału ”. .