typeof和instance of的区别
文章类型:Javascript
发布者:admin
发布时间:2023-05-11
typeof 和 instanceof 是 JavaScript 中用来检测数据类型的两个操作符,它们的作用略有不同。
一:typeof 用于检测一个变量的数据类型,返回一个表示数据类型的字符串
typeof "hello" // 返回 "string"
typeof 42 // 返回 "number"
typeof true // 返回 "boolean"
typeof function() {} // 返回 "function"
typeof {} // 返回 "object"
typeof null // 返回 "object",
二:instanceof 用于检测一个对象是否是某个构造函数的实例,返回一个布尔值
var today = new Date();
today instanceof Date // 返回 true
today instanceof Object // 返回 true,因为 Date 继承自 Object
today instanceof Array // 返回 false,因为 Date 不是 Array 的实例
三:总结
1:typeof 对于函数类型返回的是 "function",而不是 "object"。函数也是一种对象类型。
2:typeof 对于未定义的变量或未声明的变量返回的是 "undefined"。未定义的变量和未声明的变量都会被视为 undefined 值。
3:typeof 对于数组类型返回的是 "object"。判断数组使用 Array.isArray() 方法。
4:instanceof 操作符判断的是一个对象是否是某个构造函数的实例,而不是某个类型的实例。
5:instanceof 操作符只能判断对象是否是某个构造函数的实例,不能判断基本数据类型的数据。