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