Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

โอเปอเรเตอร์บวกกำหนดค่า (+=) ใน JavaScript คืออะไร?


โอเปอเรเตอร์บวกกำหนดค่า (+=) เป็น Compound Assignment Operator ที่ทำสองอย่างพร้อมกัน: บวก operand ขวามือกับ operand ซ้ายมือ แล้วกำหนดผลลัพธ์กลับให้ operand ซ้ายมือ

ไวยากรณ์

x += y  // เทียบเท่า x = x + y

ตัวอย่างโค้ด

<html>
<body>
  <script>
    var a = 33;
    var b = 10;
    document.write("Value of a => (a += b) => ");
    result = (a += b); // a = a + b = 43
    document.write(result); // 43
    document.write("<br>a ตอนนี้ = " + a); // 43
  </script>
</body>
</html>

พฤติกรรมกับชนิดข้อมูลต่างๆ

เหมือนกับโอเปอเรเตอร์ + ทำงานได้ทั้งตัวเลขและสตริง:

// ตัวเลข
var num = 10;
num += 5;    // 15
num += 3.5;  // 18.5

// สตริง
var str = "Hello";
str += " World"; // "Hello World"

// Boolean (แปลงเป็นตัวเลข)
var bool = true;
bool += 1; // 2 (true = 1)

// Array (แปลงเป็นสตริง)
var arr = [1, 2];
arr += 3; // "1,23" (array.toString() + "3")

การใช้งานทั่วไป

  • สะสมค่าในลูป: sum += value
  • สร้างสตริงยาว: html += '<div>...</div>'
  • อัปเดตคุณสมบัติออบเจ็กต์: obj.count += 1

ประสิทธิภาพ

ในรูปแบบเดิม a = a + b จะสร้างค่าชั่วคราวแล้วกำหนดใหม่ ส่วน a += b อาจปรับปรุงได้ดีกว่าในบาง Engine แต่ความแตกต่างมักน้อยมาก ควรเลือกใช้แบบที่อ่านง่ายกว่า

ข้อควรระวัง

  • กับอาร์เรย์: arr += val จะแปลงอาร์เรย์เป็นสตริง ไม่ใช่ push ค่าเข้าไป (ใช้ arr.push(val) แทน)
  • กับออบเจ็กต์: จะเรียก toString() แล้วต่อสตริง
  • ไม่สามารถใช้กับ const ได้