推荐答案
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
运算符用于检测对象是否属于某个类的实例,返回一个布尔值。它通常用于检测对象是否是某个构造函数或类的实例。
-- -------------------- ---- ------- ----- ------- -- ----- --- - --- ---------- --------------- ---------- --------- -- ---- --------------- ---------- -------- -- ---- ----- --- - --- -- --- --------------- ---------- ------- -- ---- --------------- ---------- -------- -- ----
区别总结
typeof
主要用于检测基本数据类型,而instanceof
主要用于检测对象是否是某个类的实例。typeof
返回一个表示数据类型的字符串,而instanceof
返回一个布尔值。typeof
可以检测null
和undefined
,而instanceof
不能检测这些值。instanceof
可以检测对象的继承关系,而typeof
不能。