Bitwise OR (|) (Operator/bitwise)

Bitwise OR of two operands.

Availability:

ECMAScript edition - 2
JavaScript - 1.0
JScript - 1.0
Internet Explorer - 3.02
Netscape - 2.0
Netscape Enterprise Server - 2.0
Opera - 3.0
Property/method value type:Number primitive
JavaScript syntax:-anOperand1 | anOperand2
Argument list:anOperand1A numeric value
anOperand2Another numeric value

Performs a bit-by-bit OR of the 32-bit value derived from both operands.

Where a corresponding bit is 1 in either of the two operands, a 1 is inserted into the result. A zero is inserted only when neither operand has a 1 bit at that position.

The associativity is left to right.

Refer to the operator precedence topic for details of execution order.

The truth table shows the result of this operator for two Boolean primitive values:

ABOR
falsefalsefalse
falsetruetrue
truefalsetrue
truetruetrue

This is applied to each corresponding bit pair in the operands.

Example code:

   <HTML>

   <HEAD></HEAD>

   <BODY>

   <SCRIPT>

   myValue1 = 0x00FF;

   myValue2 = 0xFF00;

   myValue3 = myValue1 | myValue2;

   document.write("Val 1 : " + binary32(myValue1) + "<BR>");

   document.write("Val 2 : " + binary32(myValue2) + "<BR>");

   document.write("OR : " + binary32(myValue3) + "<BR>");

   // Binary convertor (ignore sign bit on MSIE)

   function binary32(aValue)

   {

     myArray = new Array(32);

   

     for(myEnum=0; myEnum<32; myEnum++)

     {

       if(aValue & Math.pow(2, myEnum))

       {

         myArray[31-myEnum] = "1";

       }

       else

       {

       myArray[31-myEnum] = "0";

     }

   }

   return myArray.join("");

   }

   </SCRIPT>

   </BODY>

   </HTML>

See also:Associativity, Binary bitwise operator, Bit-field, Bitwise OR then assign (|=), Operator Precedence

Cross-references:

ECMA 262 edition 2 - section - 11.10

ECMA 262 edition 3 - section - 11.10