推荐答案
typeof 和 instanceof 是 JavaScript 中用于类型检查的两个运算符,但它们的作用和使用场景有所不同。
typeof用于检测变量的数据类型,返回一个表示数据类型的字符串。instanceof用于检测对象是否属于某个类的实例,返回一个布尔值。
本题详细解读
typeof 运算符
typeof 运算符用于检测变量的数据类型,返回一个表示数据类型的字符串。它可以检测以下数据类型:
"undefined":如果变量未定义。"boolean":如果变量是布尔值。"number":如果变量是数字。"string":如果变量是字符串。"symbol":如果变量是 Symbol 类型。"function":如果变量是函数。"object":如果变量是对象或null。
console.log(typeof 42); // "number"
console.log(typeof "hello"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object"
console.log(typeof {}); // "object"
console.log(typeof function() {}); // "function"instanceof 运算符
instanceof 运算符用于检测对象是否属于某个类的实例,返回一个布尔值。它通常用于检测对象是否是某个构造函数或类的实例。
// www.javascriptcn.com code example
class MyClass {}
const obj = new MyClass();
console.log(obj instanceof MyClass); // true
console.log(obj instanceof Object); // true
const arr = [1, 2, 3];
console.log(arr instanceof Array); // true
console.log(arr instanceof Object); // true区别总结
typeof主要用于检测基本数据类型,而instanceof主要用于检测对象是否是某个类的实例。typeof返回一个表示数据类型的字符串,而instanceof返回一个布尔值。typeof可以检测null和undefined,而instanceof不能检测这些值。instanceof可以检测对象的继承关系,而typeof不能。