Skip to content

Operator

Basic operators

Sample code:

js
var a = 10,
  b = 20;

// Addition
console.log(30 === a + b);
// Subtraction
console.log(-10 === a - b);
// Multiplication
console.log(200 === a * b);
// Division
console.log(0.5 === a / b);
// Complementation
console.log(10 === a % b);

Addition + can also be used to concatenate strings.

js
var a = ".w",
  b = "xs";

// String concatenation
console.log(".wxs" === a + b);

Unary operators

Sample code:

js
var a = 10,
  b = 20;

// Auto increment
console.log(10 === a++);
console.log(12 === ++a);
// Auto decrement
console.log(12 === a--);
console.log(10 === --a);
// Positive value
console.log(10 === +a);
// Negative value
console.log(0 - 10 === -a);
// Not
console.log(-11 === ~a);
// Negate
console.log(false === !a);
// Delete
console.log(true === delete a.fake);
// Void
console.log(undefined === void a);
// Typeof
console.log("number" === typeof a);

Bitwise operators**

Sample code:

js
var a = 10,
  b = 20;

// Left shift
console.log(80 === a << 3);
// Unsigned right shift
console.log(2 === a >> 2);
// Signed right shift
console.log(2 === a >>> 2);
// AND
console.log(2 === (a & 3));
// XOR
console.log(9 === (a ^ 3));
// OR
console.log(11 === (a | 3));

Comparison operators**

Sample code:

js
var a = 10,
  b = 20;

// Less than
console.log(true === a < b);
// Greater than
console.log(false === a > b);
// Less than or equal to
console.log(true === a <= b);
// Greater than or equal to
console.log(false === a >= b);

Equality operator**

Sample code:

js
var a = 10,
  b = 20;

// Equal sign
console.log(false === (a == b));
// Not equal sign
console.log(true === (a != b));
// Equivalent sign
console.log(false === (a === b));
// Not equivalent sign
console.log(true === (a !== b));

assignment operator**

Sample code:

js
var a = 10;

a = 10;
a *= 10;
console.log(100 === a);
a = 10;
a /= 5;
console.log(2 === a);
a = 10;
a %= 7;
console.log(3 === a);
a = 10;
a += 5;
console.log(15 === a);
a = 10;
a -= 11;
console.log(-1 === a);
a = 10;
a <<= 10;
console.log(10240 === a);
a = 10;
a >>= 2;
console.log(2 === a);
a = 10;
a >>>= 2;
console.log(2 === a);
a = 10;
a &= 3;
console.log(2 === a);
a = 10;
a ^= 3;
console.log(9 === a);
a = 10;
a |= 3;
console.log(11 === a);

binary logical operator**

Sample code:

js
var a = 10,
  b = 20;

// Logical AND
console.log(20 === (a && b));
// Logical OR
console.log(10 === (a || b));

other operators**

Sample code:

js
var a = 10,
  b = 20;

//Conditional operator
console.log(20 === (a >= 10 ? a + 10 : b + 10));
//Comma operator
console.log(20 === (a, b));

Operator precedence

PriorityOperatorDescriptionAssociativity
20( ... )parenthesesn/a
19... . ...member accessFrom left to right
19... [ ... ]member accessFrom left to right
19... ( ... )function callFrom left to right
17... ++post-incrementn/a
17... --post-decrementn/a
16! ...logical notFrom right to left
16~ ...bitwise notFrom right to left
16+ ...unary additionFrom right to left
16- ...unary subtractionFrom right to left
16++ ...pre-incrementFrom right to left
16-- ...pre-decrementFrom right to left
16typeof ...typeofFrom right to left
16void ...voidFrom right to left
16delete ...deleteFrom right to left
14... * ...multiplicationFrom left to right
14... / ...divisionFrom left to right
14... % ...moduloFrom left to right
13... + ...additionFrom left to right
13... - ...SubtractionFrom left to right
12... << ...Bitwise left shiftFrom left to right
12... >> ...Bitwise right shiftFrom left to right
12... < ...Unsigned right shiftFrom left to right
11... >>> ...Less thanFrom left to right
11... <= ...Less than or equal toFrom left to right
11... > ...Greater thanFrom left to right
11... >= ...Greater than or equal toFrom left to right
10... == ...Equal toFrom left to right
10... != ...Not equal toFrom left to right
10... === ...Exactly equal toFrom left to right
10... !== ...Not exactly equal toFrom left to right
9... & ...Bitwise ANDFrom left to right
8.. ^ ...Bitwise XORFrom left to right
7... | ...Bitwise ORFrom left to right
6... && ...logical andFrom left to right
5... || ...logical orFrom left to right
4... ? ... : ...Conditional operatorFrom right to left
3... = ...AssignmentFrom right to left
3... += ...AssignmentFrom right to left
3... -= ...AssignmentFrom right to left
3... *= ...AssignmentFrom right to left
3... /= ...AssignmentFrom right to left
3... %= ...AssignmentFrom right to left
3... <<= ...AssignmentFrom right to left
3... >>= ...AssignmentFrom right to left
3... >>>= ...AssignmentFrom right to left
3... &= ...AssignmentFrom right to left
3... ^= ...AssignmentFrom right to left
3... |= ...AssignmentFrom right to left
0... , ...CommaFrom left to right