JavaScript-面试-类型转换与相等
2026年10月16日·Admin·2 次浏览
面试题:== 和 ===?隐式类型转换规则?
===(严格相等)
不转换类型:类型不同直接 false;NaN === NaN 为 false(唯一值用 Object.is)。
==(抽象相等)
类型不同时按规范转换成同一类型再比,规则多、易踩坑,生产代码推荐全用 ===。
记忆抓手
null == undefined为 true,二者与其它原始值比较多为 false。- 数字与字符串:字符串转数字再比。
- 布尔与其它:布尔先转数字(
true→1,false→0)。 - 对象与原始:对象
ToPrimitive(valueOf/toString)再比。
典型坑
[] == false // true,数组转 primitive 再走布尔规则
'' == 0 // true
Object.is
同值零:Object.is(NaN, NaN) true;Object.is(+0, -0) false。