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

โอเปอเรเตอร์ OR แบบบิตเวิร์ส (|) ใน JavaScript คืออะไร?


โอเปอเรเตอร์ OR แบบบิตเวิร์ส (|) ทำการดำเนินการ Boolean OR บนแต่ละบิตของอินจิเจอร์สองตัว ผลลัพธ์จะเป็น 1 หากบิตใดบิตหนึ่ง ของ operand ทั้งสองเป็น 1 ผลลัพธ์จะเป็น 0 ก็ต่อเมื่อทั้งสองบิตเป็น 0

ตารางความจริง

ABA | B
000
011
101
111

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

<html>
<body>
  <script>
    var a = 2;  // บิต: 10
    var b = 3;  // บิต: 11
    document.write("(a | b) => ");
    result = (a | b);
    document.write(result); // ผลลัพธ์: 3 (บิต: 11)
  </script>
</body>
</html>

การประยุกต์ใช้ทั่วไป

  • การตั้งค่า Flag (Bit Flags): รวมค่าคุณสมบัติหลายค่าเข้าด้วยกัน
  • การตรวจสอบ/ตั้งค่าบิตเฉพาะ: ใช้ร่วมกับมาสก์ (mask)
  • การแปลงค่า: val | 0 ใช้แปลงเป็น 32-bit integer ได้เร็วกว่า Math.floor() สำหรับค่าบวก

ตัวอย่างการใช้ Flag

const READ = 1;    // 001
const WRITE = 2;   // 010
const EXECUTE = 4; // 100

var permissions = READ | WRITE; // 011 = 3
// ตรวจสอบสิทธิ์
if (permissions & READ) { /* อ่านได้ */ }
if (permissions & WRITE) { /* เขียนได้ */ }