前端面试题-typeof 与instanceof区别(2024.2.1)

1、相同点以及概念

typeofinstanceof 都是 JavaScript 中用于检测值类型的运算符

2、typeof

typeof 用于检测一个值的数据类型,返回的结果是一个字符串,表示被检测值的数据类型。常用的返回值有:"number", "string", "boolean", "object", "function", "undefined", 和 "symbol"

typeof 42; // "number"
typeof "hello"; // "string"
typeof true; // "boolean"
typeof {}; // "object"
typeof function() {}; // "function"
typeof undefined; // "undefined"
typeof Symbol("foo"); // "symbol"

注意:typeof null 返回 "object"

3、instanceof 

instanceof 用于检测对象的构造函数。返回一个布尔值,表示对象是否是指定构造函数的实例,通常用于检测自定义对象的类型。

const arr = [1, 2, 3];
arr instanceof Array; // true

const obj = { key: 'value' };
obj instanceof Object; // true

function Person() {}
const person = new Person();
person instanceof Person; // true

注意:instanceof 无法检测基本数据类型,只能用于对象实例的检测。

总结 

  • typeof 用于检测值的数据类型。
  • instanceof 用于检测对象的构造函数。

你可能感兴趣的:(前端)