JS——typeof与instanceof

typeof

作用:判断变量的类型

返回值:返回值为字符串类型
返回结果的可能值:number、boolean、string、function、object、undefined(未定义)

局限性:对于array(数组)、null等特殊类型使用typeof一律返回null、不能区分object类型的具体类型

具体语法:typeof expression ;
expression 参数是需要查找类型信息的任意表达式。所以说typeof是一个一元运算符

那么什么时候回返回undefined呢?
对与没有定义或者没有声明的变量返回undefined。比如下面的两个都返回undefined

//a声明了,但是a1没有声明
Var a;
Alert(typeof a);
Alert(typeof a1);

使用typeof判断一个变量是否存在。
不能使用if(a),因为如果a没有声明那么会报错的。而typeof对与没有声明的变量使用也不会报错。

If(typeof a!="underfined"){
	Alert("OK")
};
instance

作用:判断一个变量是否是某个类型的实例

返回值:返回值为布尔类型,true或false

具体语法:expression instanceof class
expression——必选项,任意对象表达式。class——必选项,任意已定义的对象类。
所以说instance是一个二元运算符

使用举例:

var a = new Array();
alert(a instanceof Array);
alert(a instanceof Object);

上面的两个返回值都是true。

那么上面a为什么也是object类型呢?
其实是因为instance也不能辨别[]不是boject的实例对象。
为什么呢?其实是因为他们之间形成了一条原型链。那么什么是原型呢?什么又是原型链呢?
请点击了解

发布了110 篇原创文章 · 获赞 21 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/make_1998/article/details/103829573