== vs === in JavaScript: What’s the Difference and When to Use Them
What's the real difference between == and === in JavaScript? This quick guide breaks it down and shows you when to use each — and why sticking to === is usually the smarter move.
If you’re writing JavaScript, you’ve probably seen both == and === used to compare values. But what’s the difference?
== (Loose Equality)
The == operator checks for equality of value, but it allows type coercion. That means JavaScript will try to convert the values to the same type before comparing.
'5' == 5 // true
true == 1 // true
null == undefined // true
It might seem helpful, but this behavior can lead to unexpected bugs.
=== (Strict Equality)
The === operator checks for equality of value and type. No conversions happen.
'5' === 5 // false
true === 1 // false
null === undefined // false
This makes comparisons more predictable and safer.
✅ Best Practice
Always use === unless you specifically need type coercion (which is rare and should be intentional).
Using === makes your code easier to understand and helps prevent hidden bugs.
In Short
| Expression | Result |
|---|---|
'5' == 5 |
true |
'5' === 5 |
false |
null == undefined |
true |
null === undefined |
false |
Stick with === for clean, reliable code.