JavaScript 面试题
目录

typeof null 的结果是什么?为什么?如何判断一个变量是否为 null?

· 约 3 分钟读完 · 第 2 / 507 章

推荐答案

typeof null 的结果是 "object"。

判断一个变量是否为 null,可以使用严格相等运算符 ===:

本题详细解读

typeof null 的结果

typeof 是 JavaScript 中的一个运算符,用于返回一个值的类型字符串。虽然 null 代表“空值”,但使用 typeof 操作符时,它返回 "object"。这是一个 JavaScript 的历史遗留问题,也是一个常见的坑。

原因:

在 JavaScript 的早期版本中,值以 32 位字存储。前三个位表示值的类型标签,而剩余的位存储实际的值。null 的表示方式的所有位都是 0,这在当时被视为表示对象的标签 000。尽管 null 不是一个对象,但它的 typeof 行为依然保留了下来,出于历史原因没有被修复。

判断变量是否为 null

使用严格相等运算符 ( === )

判断一个变量是否为 null 的最可靠和推荐的方法是使用严格相等运算符 ===。 === 不仅会比较值是否相等,还会比较类型是否相等。

避免使用相等运算符 ( == )

虽然 myVar == null 也能判断 myVar 是否为 null,但不建议使用。因为 == 会进行隐式类型转换,这会导致 null == undefined 返回 true。如果你想只判断是否为 null,而不是 null 或 undefined,那么应该使用 ===。

总结: 使用 === null 可以确保你只检测到 null 值,而不会意外地将 undefined 也包含在内。这是判断 null 的最佳实践。