返回

day06 typeof 与 instanceof 原理

前端

typeof 原理

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

  • number
  • string
  • object
  • boolean
  • function
  • undefined
  • symbol

例如,以下代码将输出 "number":

console.log(typeof 123); // "number"

以下代码将输出 "string":

console.log(typeof "hello"); // "string"

以下代码将输出 "object":

console.log(typeof {}); // "object"

以下代码将输出 "boolean":

console.log(typeof true); // "boolean"

以下代码将输出 "function":

console.log(typeof function() {}); // "function"

以下代码将输出 "undefined":

console.log(typeof undefined); // "undefined"

以下代码将输出 "symbol":

console.log(typeof Symbol()); // "symbol"

instanceof 原理

instanceof 运算符用于检测变量是否是某个类的实例。它返回一个布尔值,表示变量是否是某个类的实例。instanceof 运算符可以检测以下几种类型:

  • 函数
  • 对象

例如,以下代码将输出 true

class Person {
}

const person = new Person();

console.log(person instanceof Person); // true

以下代码将输出 false

const person = {};

console.log(person instanceof Person); // false

typeof 和 instanceof 的区别

typeofinstanceof 都是 JavaScript 中用于检测变量类型的运算符,但它们之间存在一些区别。

  • typeof 返回一个字符串,表示变量的类型。
  • instanceof 返回一个布尔值,表示变量是否是某个类的实例。
  • typeof 可以检测所有类型的变量,而 instanceof 只可以检测类、函数和对象的实例。
  • typeof 的运算速度比 instanceof 快。

typeof 和 instanceof 的用法

typeofinstanceof 运算符在 JavaScript 中有很多用法。例如,我们可以使用它们来:

  • 检测变量的类型。
  • 检查变量是否是某个类的实例。
  • 确定变量是否为某个值。
  • 将变量转换为另一种类型。

总结

typeofinstanceof 都是 JavaScript 中用于检测变量类型的运算符。typeof 返回一个字符串,表示变量的类型。instanceof 返回一个布尔值,表示变量是否是某个类的实例。typeof 可以检测所有类型的变量,而 instanceof 只可以检测类、函数和对象的实例。typeof 的运算速度比 instanceof 快。typeofinstanceof 运算符在 JavaScript 中有很多用法。