Operators

Updated at:

Arithmetic operators

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);
// Modulo operation
console.log(10 === a % b);

The addition operator + can also be used for string concatenation.

var a = 'hello', b = ' alipay';
// String concatenation
console.log('hello alipay' === a + b);

Comparison operators

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));
// Equal to
console.log(false === (a == b));
// Not equal to
console.log(true === (a != b));
// Strictly equal to
console.log(false === (a === b));
// Strictly not equal to
console.log(true === (a !== b));

Binary logical operators

var a = 10, b = 20;
// Logical AND
console.log(20 === (a && b));
// Logical OR
console.log(10 === (a || b));
// Logical NOT, negation
console.log(false === !a);

Bitwise operators

var a = 10, b = 20;

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

Assignment operators

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);

Unary operators

var a = 10, b = 20;
// Increment
console.log(10 === a++);
console.log(12 === ++a);
// Decrement
console.log(12 === a--);
console.log(10 === --a);
// Unary plus
console.log(10 === +a);
// Unary negation
console.log(0-10 === -a);
// Bitwise NOT
console.log(-11 === ~a);
// Logical NOT
console.log(false === !a);
// delete operation
console.log(true === delete a.fake);
// void operation
console.log(undefined === void a);
// typeof operation
console.log("number" === typeof a);

Ternary operator

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

Comma operator

var a = 10, b = 20;
// Comma operator
console.log(20 === (a, b));

Operator precedence

The operator precedence in Safe JavaScript Subset (SJS) is the same as in JavaScript.