JavaScript
What is the difference between == and === in JavaScript?
JavaScript
== vs ===
Both == and === check the types of their operands. The difference is in how they respond if the types don't match. The == allows coercion when types don't match and === disallows coercion.
JAVASCRIPT
1// == Examples (loose equality)25 == "5" // true (string "5" is converted to number 5)30 == false // true (false is converted to number 0)4null == undefined // true5[] == false // true (both are converted to 0)67// === Examples (strict equality)85 === "5" // false (different types)90 === false // false (different types)10null === undefined // false11[] === false // false
As a best practice, it's generally recommended to use === because:
- It's more predictable since no type conversion occurs
- It helps prevent subtle bugs caused by unexpected type coercion
- It makes your code's intentions clearer
Always use triple equals, ===, unless you have a specific reason to use ==. The only time you might want to use == is when you specifically want type coercion, but those cases are rare and should be clearly documented.
Related JavaScript interview topics
Continue with nearby questions from the same topic cluster.
What is the difference between async and defer in JavaScript?What is the difference between dot notation and bracket notation?What is the difference between currying and partial application?What is the difference between call( ) and bind( )?What is the difference between call( ) and apply( )?What is difference between stopPropagation() and stopImmediatePropagation()?