JavaScript 中 typeof 和 instanceof 运算符的区别是什么?

推荐答案

typeofinstanceof 是 JavaScript 中用于类型检查的两个运算符,但它们的作用和使用场景有所不同。

  • typeof 用于检测变量的数据类型,返回一个表示数据类型的字符串。
  • instanceof 用于检测对象是否属于某个类的实例,返回一个布尔值。

本题详细解读

typeof 运算符

typeof 运算符用于检测变量的数据类型,返回一个表示数据类型的字符串。它可以检测以下数据类型:

  • "undefined":如果变量未定义。
  • "boolean":如果变量是布尔值。
  • "number":如果变量是数字。
  • "string":如果变量是字符串。
  • "symbol":如果变量是 Symbol 类型。
  • "function":如果变量是函数。
  • "object":如果变量是对象或 null

instanceof 运算符

instanceof 运算符用于检测对象是否属于某个类的实例,返回一个布尔值。它通常用于检测对象是否是某个构造函数或类的实例。

-- -------------------- ---- -------
----- ------- --
----- --- - --- ----------

--------------- ---------- --------- -- ----
--------------- ---------- -------- -- ----

----- --- - --- -- ---
--------------- ---------- ------- -- ----
--------------- ---------- -------- -- ----

区别总结

  • typeof 主要用于检测基本数据类型,而 instanceof 主要用于检测对象是否是某个类的实例。
  • typeof 返回一个表示数据类型的字符串,而 instanceof 返回一个布尔值。
  • typeof 可以检测 nullundefined,而 instanceof 不能检测这些值。
  • instanceof 可以检测对象的继承关系,而 typeof 不能。
纠错
反馈