前端/移动开发面试题更新 2026-08-05

在JavaScript中,对null值使用typeof操作符会返回什么结果?请解释其背后的原因。

前端/移动开发技术原理JavaScript

考察说明

考查对JavaScript typeof操作符和null类型本质的理解,以及历史遗留问题的知晓程度。

回答思路

  1. 【回答框架 1】typeof null在JavaScript中返回字符串'object',这是官方规范定义的行为,并非bug,而是历史遗留设计。
  2. 【回答框架 2】null在语义上表示空值或不存在,但它的类型标签在底层被标记为0,与对象的类型标签相同,导致typeof将其误判为object。
  3. 【回答框架 3】这一行为源于JavaScript早期实现,当时只有少数几种类型,null被设计为特殊对象引用,后续为兼容生态未作修改。
  4. 【回答框架 4】实际开发中应使用null===null或Object.prototype.toString.call(null)来精确判断null,而非依赖typeof。
  5. 【回答框架 5】面试时需明确区分typeof null与null本身,并说明这是语言规范的一部分,具有确定性。
  6. 【关键点 1】typeof null返回'object',规范定义如此。
  7. 【关键点 2】原因是历史遗留的类型标签冲突,null的底层类型标签为0,与对象一致。
  8. 【关键点 3】精确判断null应使用严格相等或toString方法。
  9. 【易错点 1】不要将typeof null误认为bug,应强调其规范性和历史原因。
  10. 【易错点 2】避免与undefined混淆,undefined的typeof返回'undefined'。