ตาม 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, || = และ && = กำลังถูกเพิ่มเช่นกัน || = เป็นส่วนใหญ่ มีประโยชน์กับทั้งสองอย่าง แต่ไม่มีเหตุผลที่จะออกจากแบบฟอร์มการมอบหมาย & & ออก .