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",这是一个历史遗留问题。