JavaScript中typeof null返回object的控制台疑问
为什么
typeof null返回object? 这是JavaScript诞生时留下的历史遗留bug,从第一版JS就存在,至今因为要兼容大量旧代码而没有修复。
早期JavaScript用32位值存储数据,每个值的低3位用来标记数据类型:
- 000:对象类型
- 001:整数
- 010:双精度浮点数
- 100:字符串
- 110:布尔值
而null被设计成所有位都是0的数值,它的低3位自然是000,正好和对象的类型标记重叠,导致typeof检测时误判为object。
你的代码示例验证了这个问题:
let car = null; console.log(car); // 输出 null console.log(typeof car); // 输出 object
如果要准确判断一个值是否为null,直接用全等运算符===即可:
console.log(car === null); // 输出 true
内容的提问来源于stack exchange,提问作者Xay
相关产品推荐
相关产品推荐

