Do you find difficulty choosing between =, == & === ?

Assigning Operator (=)
It assigns the value to the variable.
const firstName = 'Prashant';
const favNumber = 13;
Loose Equality Operator (==)
This operator compares two values & return true if they are equivalent or false if they are not.
function equality(value) {
     if(value == 13) {
          return 'Equal';
     }
     return 'Not Equal';
}
In addition, it also compares two different data types (numbers & strings).

It is called as Type Coercion.
1 == '1' /* This will return true with the Loose Equality Operator. */
Strict Equality Operator (===)
Unlike the Equality Operator, it does not compare two different data types.

Otherwise, it works similarly to Loose Equality Operator.
1 === '1' /* This will return false in case of the Strict Equality Operator. */
More Examples
var favBook = 'Sapiens'; /* Assigns the value to the variable */

const 13 == '13'; /* It will perform a type conversion and it will return true. */

const 13 ==='13' /* It will not perform type conversion. Hence, it will return false. */
A tip by
lukeshiru image
Ideally, you should always use === and !==, and never use ==, and !=.
Or to make it easy to use what can you do is configure your linter to always use === and !== in code editor.
The loose equality has too many pitfalls that are covered by the strict one.

Hope you found it helpful. Please let me know.
Why not connect on Twitter?

22

This website collects cookies to deliver better user experience

Do you find difficulty choosing between =, == & === ?