Todas las publicaciones
post18 de abril de 2026

Diferencia: == vs ===

#javascript#equality#coercion#interview
What is the difference between == and === in JavaScript? Give examples where == produces unexpected results.

**===** (strict equality): values AND types must match. No coercion. **==** (loose equality): types are coerced before comparison. Follow the Abstract Equality algorithm. ```js 1 == '1' // true — string coerced to number 1 === '1' // false — different types 0 == false // true — false becomes 0 0 === false // false null == undefined // true — special rule null === undefined // false [] == false // true ([] → '' → 0, false → 0) [] === false // false NaN == NaN // false — NaN never equals anything ``` Rule: always use ===. Use == only for the null/undefined check: `x == null` catches both.