Copyright © tutorialspoint.com

# JavaScript Operators

# What is an operator?

Simple answer can be given using expression 4 + 5 is equal to 9. Here 4 and 5 are called operands and + is called operator. JavaScript language supports following type of operators.

- Arithmetic Operators

- Comparision Operators

- Logical (or Relational) Operators

- Assignment Operators

- Conditional (or ternary) Operators

Lets have a look on all operators one by one.

# The Arithmatic Operators:

There are following arithmatic operators supported by JavaScript language:

Assume variable A holds 10 and variable B holds 20 then:

Operator | Description | Example
--- | --- | ---
+ | Adds two operands | A + B will give 30
- | Subtracts second operand from the first | A - B will give -10
* | Multiply both operands | A * B will give 200
/ | Divide numerator by denumerator | B / A will give 2
% | Modulus Operator and remainder of after an integer division | B % A will give 0
++ | Increment operator, increases integer value by one | A++ will give 11
-- | Decrement operator, decreases integer value by one | A-- will give 9

Note: Addition operator (+) works for Numeric as well as Strings. e.g. "a" + 10 will give "a10".

To understand these operators in better way you can Try it yourself.

# The Comparison Operators:

There are following comparison operators supported by JavaScript language

Assume variable A holds 10 and variable B holds 20 then:

Operator | Description | Example
--- | --- | ---
== | Checks if the value of two operands are equal or not, if yes then condition becomes true. | (A == B) is not true.
!= | Checks if the value of two operands are equal or not, if values are not equal then condition becomes true. | (A != B) is true.
> | Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true. | (A > B) is not true.
< | Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true. | (A < B) is true.
>= | Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true. | (A >= B) is not true.
<= | Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true. | (A <= B) is true.

To understand these operators in better way you can Try it yourself.

# The Logical Operators:

There are following logical operators supported by JavaScript language

Assume variable A holds 10 and variable B holds 20 then:

Operator | Description | Example
--- | --- | ---
&& | Called Logical AND operator. If both the operands are non zero then then condition becomes true. | (A && B) is true.
|| | Called Logical OR Operator. If any of the two operands are non zero then then condition becomes true. | (A || B) is true.
! | Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false. | !(A && B) is false.

To understand these operators in better way you can Try it yourself.

# The Bitwise Operators:

There are following bitwise operators supported by JavaScript language

Assume variable A holds 2 and variable B holds 3 then:

Operator | Description | Example
--- | --- | ---
& | Called Bitwise AND operator. It performs a Boolean AND operation on each bit of its integer arguments. | (A & B) is 2 .
| | Called Bitwise OR Operator. It performs a Boolean OR operation on each bit of its integer arguments. | (A | B) is 3.
^ | Called Bitwise XOR Operator. It performs a Boolean exclusive OR operation on each bit of its integer arguments. Exclusive OR means that either operand one is true or operand two is true, but not both. | (A ^ B) is 1.
~ | Called Bitwise NOT Operator. It is a is a unary operator and operates by reversing all bits in the operand. | (~B) is -4 .
<< | Called Bitwise Shift Left Operator. It moves all bits in its first operand to the left by the number of places specified in the second operand. New bits are filled with zeros. Shifting a value left by one position is equivalent to multiplying by 2, shifting two positions is equivalent to multiplying by 4, etc. | (A << 1) is 4.
>> | Called Bitwise Shift Right with Sign Operator. It moves all bits in its first operand to the right by the number of places specified in the second operand. The bits filled in on the left depend on the sign bit of the original operand, in order to preserve the sign of the result. If the first operand is positive, the result has zeros placed in the high bits; if the first operand is negative, the result has ones placed in the high bits. Shifting a value right one place is equivalent to dividing by 2 (discarding the remainder), shifting right two places is equivalent to integer division by 4, and so on. | (A >> 1) is 1.
>>> | Called Bitwise Shift Right with Zero Operator. This operator is just like the >> operator, except that the bits shifted in on the left are always zero, | (A >>> 1) is 1.

To understand these operators in better way you can Try it yourself.

# The Assignment Operators:

There are following assignment operators supported by JavaScript language:

Operator | Description | Example
--- | --- | ---
= | Simple assignment operator, Assigns values from right side operands to left side operand | C = A + B will assigne value of A + B into C
+= | Add AND assignment operator, It adds right operand to the left operand and assign the result to left operand | C += A is equivalent to C = C + A
-= | Subtract AND assignment operator, It subtracts right operand from the left operand and assign the result to left operand | C -= A is equivalent to C = C - A
*= | Multiply AND assignment operator, It multiplies right operand with the left operand and assign the result to left operand | C *= A is equivalent to C = C * A
/= | Divide AND assignment operator, It divides left operand with the right operand and assign the result to left operand | C /= A is equivalent to C = C / A
%= | Modulus AND assignment operator, It takes modulus using two operands and assign the result to left operand | C %= A is equivalent to C = C % A

Note: Same logic applies to Bitwise operators so they will become like <<=, >>=, >>=, &=, |= and ^=.

To understand these operators in better way you can Try it yourself.

# Miscellaneous Operator

## The Conditional Operator (? :)

There is an oprator called conditional operator. This first evaluates an expression for a true or false value and then execute one of the two given statements depending upon the result of the evaluation. The conditioanl operator has this syntax:

Operator | Description | Example
--- | --- | ---
? : | Conditional Expression | If Condition is true ? Then value X : Otherwise value Y

To understand this operator in better way you can Try it yourself.

## The typeof Operator

The typeof is a unary operator that is placed before its single operand, which can be of any type. Its value is a string indicating the data type of the operand.

The typeof operator evaluates to "number", "string", or "boolean" if its operand is a number, string, or boolean value and returns true or false based on the evaluation.

Here is the list of return values for the typeof Operator :

Type | String Returned by typeof
--- | ---
Number | "number"
String | "string"
Boolean | "boolean"
Object | "object"
Function | "function"
Undefined | "undefined"
Null | "object"

To understand this operator in better way you can Try it yourself.

Copyright © tutorialspoint.com