# Difference Between =, ==, and === in JavaScript [Examples]

## What is = in JavaScript?

Equal to (=) is an assignment operator, which sets the variable on the left of the = to the value of the expression that is on its right. This operator assigns lvalue to rvalue.

For example, Writing a=10 is fine. If we write 10=10, ‘a’ = 10 or ‘a’ = ‘a’, it will result in a reference error.

## What is == in JavaScript?

Double equals (==) is a comparison operator, which transforms the operands having the same type before comparison.

So, when you compare string with a number, JavaScript converts any string to a number. An empty string is always converts to zero. A string with no numeric value is converts to NaN (Not a Number), which returns false.

## What is === in JavaScript?

=== (Triple equals) is a strict equality comparison operator in JavaScript, which returns false for the values which are not of a similar type. This operator performs type casting for equality. If we compare 2 with “2” using ===, then it will return a false value.

## Why use = in JavaScript?

Here are the important uses of = in JavaScript:

= JavaScript operator assigns a value to the left operand depends on the value of operand available on the right side. The first operand should be a variable.

The basic assignment operator is =, that assigns the value of one operand to another. That is, a = b assigns the value of b to a.

## Why use == in JavaScript?

Here are the important uses of == in JavaScript:

The == operator is an equality operator. It checks whether its two operands are the same or not by changing expression from one data type to others. You can use == operator in order to compare the identity of two operands even though, they are not of a similar type.

## How === Works Exactly?

• Strict equality === checks that two values are the same or not.
• Value are not implicitly converted to some other value before comparison.
• If the variable values are of different types, then the values are considered as unequal.
• If the variable are of the same type, are not numeric, and have the same value, they are considered as equal.
• Lastly, If both variable values are numbers, they are considered equal if both are not NaN (Not a Number) and are the same value.

## Example of =

In the below program, there are two variables “a” and “b”. We are adding and printing their values using a third variable, “c”. The sum of the value of variable “a” and “b” is 7. Therefore, the output is 7.

```<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Operators</h2>

<p>a = 2, b = 5, calculate c = a + b, and display c:</p>

<p id="demonstration"></p>

<script>
var a = 2;
var b = 5;
var c= a + b;
document.getElementById("demonstration").innerHTML = c;
</script>

</body>
</html>
```

Output:

a = 2, b = 5, calculate c = a + b, and display c:

7

## Example of ==

In the below program, we have declared one variable “a” having value 10. Lastly, the statement a == 20 returns false as the value of a is 10.

```<!DOCTYPE html>
<html>
<body>

<p id="demonstration"></p>

<script>
var a = 10;
document.getElementById("demonstration").innerHTML = (a == 20);
</script>

</body>
</html>
```

Output:

false

## Example of ===

In the below program, the value of variable x is 10. It is compared to 10 written in double-quotes, which is considered as a string, and therefore, the values are not strictly the same. The output of the program is false.

```<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>

var x = 10;
document.getElementById("demo").innerHTML = (x === "10");

</script>

</body>
</html>
```

Output:

false

## = Vs == VS === in JavaScript

Here are the important differences between =, ==, and ===

= == ===
= in JavaScript is used for assigning values to a variable. == in JavaScript is used for comparing two variables, but it ignores the datatype of variable. === is used for comparing two variables, but this operator also checks datatype and compares two values.
It is called as assignment operator It is called as comparison operator It is also called as comparison operator
The assignment operator can evaluate to the assigned value Checks the equality of two operands without considering their type. Compares equality of two operands with their types.
It does not return true or false Return true if the two operands are equal. It will return false if the two operands are not equal. It returns true only if both values and data types are the same for the two variables.
= simply assign one value of variable to another one. == make type correction based upon values of variables. === takes type of variable in consideration.
== will not compare the value of variables at all. The == checks for equality only after doing necessary conversations. If two variable values are not similar, then === will not perform any conversion.

## KEY DIFFERENCES

• = is used for assigning values to a variable, == is used for comparing two variables, but it ignores the datatype of variable whereas === is used for comparing two variables, but this operator also checks datatype and compares two values.
• = is called as assignment operator, == is called as comparison operator whereas It is also called as comparison operator.
• = does not return true or false, == Return true only if the two operands are equal while === returns true only if both values and data types are the same for the two variables.