根据ECMA-262,第11.13部分,以下是复合赋值运算符的详尽列表:*= /= %= += -= <<= >>= >>>= &= ^= |=。
据部分11.11,var c = a || b将会把a价值成c,如果ToBoolean(a)是真实的,将把b价值为c其他。这样,逻辑“或”通常用作合并运算符,例如
function (options) {
options = options || {};
}
通常,使用合并来指定变量的默认值,如上所示:a = a || b。
复合赋值运算符似乎||=很有用,它允许以更短,更简洁的方式编写上述代码:a ||= b。然而,它不存在(虽然*=,+=和其它复合赋值运算符是)。
问题是,为什么?
angle %= 360或vertexIndex %= numberOfVertices(对于封闭多边形的顶点列表),运算符会派上用场。
||=,&&=并将很快推出:“您可能会高兴地发现,对于JS2 / ES4,还添加了|| =和&& =。|| =是最多的两者都很有用,但没有理由省略&&的赋值运算形式。” 。