De acuerdo con ECMA-262, parte 11.13, siguiente es la lista exhaustiva de operadores de asignación compuestos: *= /= %= += -= <<= >>= >>>= &= ^= |=.
De acuerdo con la parte 11.11, var c = a || bpondrá avalor en csi ToBoolean(a)es verdadero y pondrá bvalor en ccaso contrario. Como tal, el OR lógico se usa a menudo como el operador de fusión, por ejemplo
function (options) {
options = options || {};
}
Con suficiente frecuencia, se unen se utiliza para especificar el valor predeterminado para la variable, como se ha mostrado arriba a = a || b.
Parece que el operador de asignación compuesta ||=sería muy útil, que permite escribir el código anterior de una forma más corta y más limpio: a ||= b. Sin embargo, no está allí (aunque *=, +=y otros operadores de asignación compuestos son).
La pregunta es, ¿por qué?
+=, *=, -=, /=, ¿por qué no lo haría %=el trabajo?).
angle %= 360o vertexIndex %= numberOfVertices(para la lista de vértices de un polígono cerrado).
||=y &&=vendría pronto: "Puede que le agrade saber que para JS2 / ES4, || = y && = también se están agregando. || = es lo más importante útil de los dos, pero no hay razón para dejar la forma de asignación de operaciones de && out ". .