Bitwise XOR and assign (^=) (Operator/assignment)

Destructively bitwise XOR two operands and store the result in the first.

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 that can be assigned to
anOperand2Another numeric value

Bitwise XOR the right operand with the left operand and assign the result to the left operand.

This is functionally equivalent to the expression:

anOperand1 = anOperand1 ^ anOperand2;

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

Where a corresponding bit is different in both operands, a 1 bit will be inserted into the result. If the corresponding bit is identical in both operands, regardless of whether they both have a 1 bit or a zero bit, a zero will be inserted at that bit position in the result.

Although this is classified as an assignment operator it is really a compound of an assignment and a bitwise operator.

The associativity is right to left.

Refer to the Operator Precedence topic for details of execution order.

The new value of anOperand1 is returned as a result of the expression.

This is the truth table for two Boolean primitive values being operated on with the XOR operator.

ABXOR
falsefalsefalse
falsetruetrue
truefalsetrue
truetruefalse

The bitwise operator performs this operation on each corresponding bit pair in the two operands.

Warnings:

See also:Assignment operator, Associativity, Bit-field, Bitwise operator, Bitwise XOR (^), LValue, Operator Precedence

Cross-references:

ECMA 262 edition 2 - section - 11.13

ECMA 262 edition 3 - section - 11.13