You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中调用typeof检测null为何返回object类型?

typeof null 返回 object 的原因及解决办法

这是JavaScript里一个有名的历史遗留bug,从语言诞生初期就存在,而且因为要兼容大量旧代码,这个行为一直被保留到现在,甚至被ES标准正式确定了下来。

早期JavaScript的底层实现中,变量的值是用32位存储单元来表示的,其中最低3位是类型标记位:

  • 000:表示对象类型
  • 001:整数
  • 010:浮点数
  • 100:字符串
  • 110:布尔值

而null被设计成用全0的存储单元表示,它的最低3位自然是000,所以typeof检测时就把它误判成了object。

如果你需要准确判断一个值是不是null,别用typeof,直接用全等运算符===判断就行:

const score = null;
console.log(typeof score); // 输出 "object"
console.log(score === null); // 输出 true

内容的提问来源于stack exchange,提问作者Aryan Pradhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:33:09