2023前端面试题-前端javascript面试题-typeof(null) 为什么返回的是 'object' ?

78 阅读1分钟

typeof(null) 返回 "object" 是一个历史遗留问题,这是由于 JavaScript 最初的实现中出现的一个错误。

在 JavaScript 的最初版本中,用于存储变量类型信息的位被用来区分对象、整数、浮点数、字符串等数据类型。null 被认为是一种空指针对象(null pointer),其存储类型信息的位被设置为 0。然而,由于在实际使用中 null 经常被用来表示空对象引用,所以在对 null 使用 typeof 运算符时,返回了 "object"。

虽然这个错误在后续的 JavaScript 实现中得到了修复,但由于向后兼容的考虑,typeof(null) 仍然返回 "object"。

因此,当你需要判断一个变量是否为 null 时,应该使用全等运算符 === 来判断,而不是使用 typeof 运算符。例如:
const myVar = null;

console.log(myVar === null);  // true
console.log(typeof myVar);  // "object"

更多前端面试题请看:

存图扫:

daan-s.png