语法
- typeof
typeof obj
- instanceof
obj1 instanceof obj1
返回值
- typeof
类型 | 结果 |
---|---|
Undefined | "undefined" |
Null | "object" |
Boolean | "boolean" |
Number | "number" |
BigInt | "bigint" |
String | "string" |
Symbol | "symbol" |
Function(在 ECMA-262 中实现 [[Call]];classes也是函数) | "function" |
其他任何对象 | "object" |
// JavaScript 诞生以来便如此
typeof null === “object”;
- instanceof
boolean
区别
- typeof是用来检测是否为基本数据类型,但是在检测引用数据类型的时候作用不大,因为都会返回object类型
alert(typeof true); //提示为"boolean"
alert(typeof user); //自定义对象,提示为"object"
- instanceof是用来知道它是什么类型的对象
alert(person instanceof Object); // 变量 person 是 Object 吗?
alert(colors instanceof Array); // 变量 colors 是 Array 吗?
alert(pattern instanceof RegExp); // 变量 pattern 是 RegExp 吗?
补充
instanceof 字符串
都会返回false
原因:首先使用typeof
查看字符串
数据类型,返回string
,非String
,而instanceof
只有在左侧是右侧类的对象时才会返回ture
- 所有引用类型的值都是 Object 的实例,在检测一个引用类型值和 Object 构造函数时,
instanceof
操作符始终会返回 true。当然,如果使用instanceof
操作符检测基本类型的值,则该操作符始终会返回 false,因为基本类型不是对象。
评论区