1、相同点以及概念
typeof
和 instanceof
都是 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; // trueconst obj = { key: 'value' };
obj instanceof Object; // truefunction Person() {}
const person = new Person();
person instanceof Person; // true
注意:
instanceof
无法检测基本数据类型,只能用于对象实例的检测。
总结
typeof
用于检测值的数据类型。instanceof
用于检测对象的构造函数。