De acordo com ECMA-262, parte 11,13, seguinte é uma lista exaustiva dos operadores de atribuição compostos: *= /= %= += -= <<= >>= >>>= &= ^= |=.
De acordo com a parte 11.11, var c = a || bcolocará avalor em cse ToBoolean(a)for verdadeiro e colocará bvalor em ccaso contrário. Como tal, o OR lógico é frequentemente usado como operador de coalescência, por exemplo
function (options) {
options = options || {};
}
Com freqüência suficiente, coalesce é usado para especificar o valor padrão para a variável, como foi mostrado acima: a = a || b.
Parece que o operador de atribuição composto ||=seria realmente útil, permitindo a escrever o código acima de uma forma mais curta e mais limpo: a ||= b. No entanto, não é ali (embora *=, +=e outros operadores de atribuição composto são).
A questão é, por quê?
+=, *=, -=, /=, por que não faria %=o trabalho?).
angle %= 360ou vertexIndex %= numberOfVertices(para a lista de vértices de um polígono fechado).
||=e &&=em breve: "Você pode ficar feliz em saber que, para o JS2 / ES4, || = e && = também estão sendo adicionados. || = é mais útil dos dois, mas não há motivo para deixar de fora o formulário de atribuição de opções && ". .