Theo ECMA-262, phần 11.13, sau đây là danh sách đầy đủ các toán tử gán ghép : *= /= %= += -= <<= >>= >>>= &= ^= |=
.
Theo phần 11.11, var c = a || b
sẽ đưa a
giá trị vào c
nếu ToBoolean(a)
đúng và sẽ đưa b
giá trị vào mặt c
khác. Do đó, OR logic thường được sử dụng làm toán tử hợp nhất, vd
function (options) {
options = options || {};
}
Thường xuyên, kết hợp được sử dụng để chỉ định giá trị mặc định cho biến, như được hiển thị ở trên : a = a || b
.
Có vẻ như toán tử gán gán ||=
sẽ thực sự hữu ích, cho phép viết mã ở trên một cách ngắn gọn và gọn gàng hơn : a ||= b
. Tuy nhiên, nó không phải là ở đó (mặc dù *=
, +=
và toán tử gán phức hợp khác).
Câu hỏi là tại sao?
+=
, *=
, -=
, /=
, tại sao không %=
làm việc?).
angle %= 360
hoặc vertexIndex %= numberOfVertices
(cho danh sách đỉnh của một đa giác khép kín).
||=
và &&=
sẽ sớm ra mắt: "Bạn có thể vui mừng khi biết rằng đối với JS2 / ES4, || = và && = cũng được thêm vào. | hữu ích của cả hai nhưng không có lý do gì để loại bỏ hình thức chuyển nhượng && ra. " .