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

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


โอเปอเรเตอร์กำหนดค่า (=) ใช้เพื่อ กำหนดค่าจาก operand ขวามือให้กับ operand ซ้ายมือ Operand ซ้ายมือต้องเป็นตัวแปรหรือสิ่งที่สามารถกำหนดค่าได้ (lvalue) ในขณะที่ operand ขวามือสามารถเป็นนิพจน์ أيได้

ตัวอย่างพื้นฐาน

<html>
<body>
  <script>
    var a = 33;
    var b = 10;
    document.write("Value of a => (a = b) => ");
    result = (a = b); // กำหนดค่า b ให้ a แล้วส่งค่าที่กำหนดกลับ (10)
    document.write(result);
  </script>
</body>
</html>

ลำดับการทำงาน

  1. ประเมินค่า operand ขวามือ (b = 10)
  2. กำหนดค่านั้นให้ operand ซ้ายมือ (a กลายเป็น 10)
  3. ส่งค่าที่กำหนดกลับมาเป็นผลลัพธ์ของนิพจน์ทั้งหมด (10)

Operator Assignment แบบย่อ (Compound Assignment)

JavaScript มีโอเปอเรเตอร์กำหนดค่าร่วมกับการคำนวณ:

โอเปอเรเตอร์ตัวอย่างเทียบเท่า
+=a += ba = a + b
-=a -= ba = a - b
*=a *= ba = a * b
/=a /= ba = a / b
%=a %= ba = a % b
&=a &= ba = a & b
|=a |= ba = a | b
^=a ^= ba = a ^ b
<<=a <<= ba = a << b
>>=a >>= ba = a >> b
>>>=a >>>= ba = a >>> b

การกำหนดค่าแบบซ้อน (Chaining Assignment)

var a = b = c = 10; // a=10, b=10, c=10
// ทำงานจากขวาไปซ้าย: c=10, แล้ว b=c, แล้ว a=b

ข้อควรระวัง

  • ไม่สับสนกับ == (เทียบค่า) หรือ === (เทียบค่าและชนิด)
  • ในเงื่อนไข if (a = b) จะเป็นการกำหนดค่า ไม่ใช่การเทียบค่า (บั๊กที่พบบ่อย)
  • ใช้ const สำหรับค่าคงที่ เพื่อป้องกันการกำหนดค่าซ้ำโดยไม่ตั้งใจ