首页 > 代码库 > javascript 中 typeof 和 instanceof 的区别

javascript 中 typeof 和 instanceof 的区别

在 javascript 中经常会用到 typeof 和 instanceof 来判断一个对象的类型,可能 typeof 用得多些,那来看看这两个之间的区别吧。

 

typeof :

typeof 是一个一元运算符,放在一个运算数之前,运算数可以是任意类型。它返回值是一个字符串,该字符串说明运算数的类型。

typeof 一般只能返回如下几个结果:number,boolean,string,function,object,undefined。

?
1
2
3
4
5
6
7
8
<script type="text/javascript">
var obj = 1;
function f(){}
alert(typeof obj); // number
alert(typeof obj === "number"); // true
alert(typeof obj === "string"); // false
alert(typeof f); // function
</script>

  

instanceof :

instanceof 用于判断一个变量是否某个对象的实例。

?
1
2
3
4
5
6
7
<script type="text/javascript">
var arr = new Array();
var date = new Date();
alert(arr instanceof Array); // true
alert(arr instanceof Date); // false
alert(date instanceof Date); //true
</script>

 

instanceof 判断一个变量是否为 jQuery 对象

?
1
2
3
<script type="text/javascript">
alert(jqobj instanceof jQuery); // 如果 jqobj 是一个 jQuery 对象,弹出 true, 否则 false
</script>