# 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

Comparison Operators

Logical (or Relational) operators

Assignment Operators

Conditional (or ternary) Operators

Lets have a look on all operators one by one.** **

** **

## Arithmetic Operators

There are following arithmetic operators supported by JavaScript language

Assume variable A holds 10 and variable B holds 20 then

Operator | Description | Example |

+ | Adds 2 operands | A+B will give 30 |

- | Subtract second opened 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 reminder 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 number as well as strings

Ex: “a” +10 will give “a10”

**The comparison operators**

There are following comparison operators supported by java script language

Assume variable A holds 10 and variable B holds 20 then

Operator | Description | Example |

== | Checks if the value of 2 operands are equal or not , if yes then condition become true | (A==B) is not true |

!= | Checks if the value of 2 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 grater 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 grater than the value of right operand, if yes then condition becomes true | (A<B) is true |

>= | Checks if the value of left operand is grater 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 |

## Logical Operators

There are following logical operators supported by java script 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 condition becomes true | (A&&B) is true |

|| | Called logical OR operator, if any of the 2 operands are non zero 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 logical NOT operator will make false | !(A&&B) is false |

## Bitwise Operators

There are following logical operators supported by java script language

Assume variable A holds 10 and variable B holds 20 then

Operator | description | Example |

& | Called bitwise operator. It performs a Boolean AND operation on each bit of its integer arguments | (A&B) is 2 |

| | Called bitwise 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 2 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 1^{st} operand to the left by the number of places specified iin the second operand. New bits are filled with 0 shifitng a value left by one position is equivalent to multiplying by 2, shifting 2 positions is equivalent to multiply by 4 etc.. | (A<<1)is 4 |

>> | Called bitwise shoft right with sign operator. It moves all bits in its 1^{st} operand to the right by the no.of places specified in the 2^{nd} operand. The bits filled in on the left depend on the sign bit of the original operand, in order preserve the sign of the result. If the 1^{st} operand is positive, the result has ones placed in the high bits. Shifting a value right one place is equalling to dividing by 2, shifting right 2 places is equalivalent 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 |

## Assignment Operators

There are following arithmetic operators supported by JavaScript language

Assume variable A holds 10 and variable B holds 20 then

Operator | Description | Example |

= | Simple assignment operator, Assign values from right side operands to left side operand | C=A+B will assign value of A+B into C |

+= | Add AND assignment operator, it add 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 operator so they will become like <<=,>>=,>>=&=!= and ^=

**Miscellaneous Operator**

**The Conditional Operator (? :)**

There is an operator 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 conditional operator has this syntax:

Operator | Description | Example |

?= | Conditional Expression | If condition is true? Then value X: Otherwise value Y |

** **

**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” |