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.
Double equals (==) is a comparison operator, which transforms the operands having the same type before comparison.
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.
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.
a = 2, b = 5, calculate c = a + b, and display c:
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>
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>
Here are the important differences between =, ==, and ===
|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.|
- = 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.