typeof 和 instanceof 都是 JavaScript 中的运算符,它们用于判断变量的类型,但是它们的作用和使用方法有所不同。

# typeof

typeof 运算符用于判断变量的基本类型,例如字符串、数字、布尔值、undefined 和 function 等。它的语法是:

typeof variable

其中,variable 是要判断类型的变量。typeof 返回的结果是一个字符串,表示变量的类型。例如:

typeof "hello" // 返回 "string"
typeof 123 // 返回 "number"
typeof true // 返回 "boolean"
typeof undefined // 返回 "undefined"
typeof function() {} // 返回 "function"

# instanceof

instanceof 运算符用于判断变量是否属于某个对象的实例,例如数组、日期、正则表达式等。它的语法是:

variable instanceof object

其中,variable 是要判断的变量,object 是要判断的对象。instanceof 返回的结果是一个布尔值,表示变量是否属于该对象的实例。例如:

var arr = [1, 2, 3];
arr instanceof Array // 返回 true
var date = new Date();
date instanceof Date // 返回 true
var reg = /hello/;
reg instanceof RegExp // 返回 true

总的来说,typeof 用于判断变量的基本类型,而 instanceof 用于判断变量是否属于某个对象的实例。需要注意的是,typeof 对于 null 类型的变量会返回 "object",这是一个历史遗留问题。