If the increment operator is used as postfix (num++), the returned value is the value before incrementing, but if it is used as
prefix (++num), it returns the incremented value. Regardless of whether the increment operator is used as postfix or prefix, the
value of the num variable is increased by one.

Sample:

var x = 5;
var y = x++; // after this line x will be 6 and y will be 5
var x = 5;
var y = ++x; // after this line x and y will be 6

If the decrement operator is used as postfix (num--), the returned value is the value before decrementing, but if it is used
as prefix (--num), it returns the decremented value. Regardless of whether the decrement operator is used as postfix or prefix,
the value of the num variable is decreased by one.

Sample:

var z = 5;
var x = z--; // after this line x will be 5 and z will be 4
var y = --z; // after this line y and z will be 3

Left Shift assignment operator.
Shifts the value of the variable (x) left by the number of specified bits (y) and fills the missing bits on the right side with 0's.
The x <<= y expression is identical to the x *= Math.pow (2, y) expression.

Signed Right Shift assignment operator.
Shifts the value of the variable (x) right by the number of specified bits (y) and fills the missing bits on the left side with the sign bit of the original value.
The sign bit of a value is the leftmost bit.
When the sign bit is 1, then the represented value is negative, else non-negative.
The x >>= y expression is identical to the x = Math.floor (x / Math.pow (2, y)) expression.

Unsigned Right Shift assignment operator.
Shifts the value of the variable (x) right by the number of specified bits (y) and fills the missing bits on the left side with 0's.
The sign bit of a value is the leftmost bit.
When the sign bit is 1, then the represented value is negative, else non-negative.

Left Shift operator.
Returns the value of an integer (x) shifted left by the number of specified bits (y).
This shift operation fills the missing bits on the right side with 0's.
The x << y expression is identical to the x * Math.pow (2, y) expression.

Signed Right Shift operator.
Returns the signed value of an integer (x) shifted right by the number of specified bits (y).
This shift operation fills the missing bits on the left side with the sign bit of the value of x.
The sign bit of a value is the leftmost bit.
When the sign bit is 1, then the represented value is negative, else non-negative.
The x >> y expression is identical to the Math.floor (x / Math.pow (2, y)) expression.

Unsigned Right Shift operator.
Returns the unsigned value of an integer (x) shifted right by the number of specified bits (y).
This shift operation fills the missing bits on the left side with 0's.
The sign bit of a value is the leftmost bit.
When the sign bit is 1, then the represented value is negative, else non-negative.

Bitwise AND operator. Performs an AND operation on every digit of two integers (x, y) in binary representation. If both integers have 1 at a position, the result will be 1 at that position. Otherwise, the result will be 0 at that position.

Sample:

var result = 9 & 3;
// after this line result will be decimal 1 (binary: 1001 & 0011 is 0001)

Bitwise XOR operator. Performs an XOR operation on every digit of two integers (x, y) in binary representation. If the two integers have a different value at a position, the result will be 1 at that position. Otherwise, the result will be 0 at that position.

Sample:

var result = 9 ^ 3;
// after this line result will be decimal 10 (binary: 1001 ^ 0011 is 1010)

Bitwise OR operator. Performs an OR operation on every digit of two integers (x, y) in binary representation. If both integers have 0 at a position, the result will be 0 at that position. Otherwise, the result will be 1 at that position.

Sample:

var result = 9 | 3;
// after this line result will be decimal 11 (binary: 1001 | 0011 is 1011)

Bitwise NOT (complement) operator. Performs a bitwise complement operation on every digit of the integer (x) in binary representation. If the integer has 0 at a position, the result will be 1 at that position. If the integer has 1 at a position, the result will be 0 at that position.
The sign bit of a value is the leftmost bit.
When the sign bit is 1, then the represented value is negative, else non-negative.
When all bits of a value are 0, the value is 0. When all bits of a value are 1, the value is -1.

Conclusion:

The ~x expression is identical to the -(x+1) expression for integers x.

~~x is always x for integers x.

x + ~x is always -1 for integers x.

When x is a non-negative floating point number, the ~~x expression is identical to the Math.floor (x) expression.

Creates a new instance of the specified object type. It can be used to create an instance of any predefined
JavaScript type, or a user defined type. It is always possible to add properties and methods to a newly created
object.

Evaluates the given expression, and returns undefined. The void operator is useful if you want to evaluate an expression without using the return value.

Sample:

<!-- If you click this link the color of the text will be red --><ahref="javascript:void(document.body.style.color='red');">
Click here to change the text to red
</a><br/><!-- without void the contents of the anchor will be changed to red --><ahref="javascript:document.body.style.color='red';">
Click here to change the contents to red
</a>