JavaScript 面试题
目录

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

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

推荐答案

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

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

本题详细解读

typeof 运算符

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

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

instanceof 运算符

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

区别总结

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