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

推荐答案

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,而不是 nullundefined,那么应该使用 ===

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

纠错
反馈