白狗子的博客

「天上浮云如白衣,斯须改变如苍狗。」——杜甫

JavaScript-面试-类型转换与相等

2026年10月16日·Admin·2 次浏览

面试题:== 和 ===?隐式类型转换规则?

===(严格相等)

不转换类型:类型不同直接 false;NaN === NaN 为 false(唯一值用 Object.is)。

==(抽象相等)

类型不同时按规范转换成同一类型再比,规则多、易踩坑,生产代码推荐全用 ===。

记忆抓手

  1. null == undefined 为 true,二者与其它原始值比较多为 false。
  2. 数字与字符串:字符串转数字再比。
  3. 布尔与其它:布尔先转数字(true→1,false→0)。
  4. 对象与原始:对象 ToPrimitive(valueOf / toString)再比。

典型坑

[] == false  // true,数组转 primitive 再走布尔规则
'' == 0      // true

Object.is

同值零:Object.is(NaN, NaN) true;Object.is(+0, -0) false。

© 2025 My Blog. Built with Nuxt.js v4