javascript typeof 和 instanceof 的区别和联系
一,typeof
概念——操作符,
目的——检测一个变量是不是基本数据类型的变量,换句话说,判断一个变量是 字符串,数值, 布尔值,对象,undefined
注意——使用typeof操作符的时候,如果检测对象是函数,那么操作符返回"function" ,
如果检测对象是正则表达式,在Safari和Chrome中使用typeof的时候会错误的返回"function",其他的浏览器返回的是object.
例子——
var a="zhangqian"; var b=true; var c=10; var d; var e=null; //null也是一个对象 var f=new Object(); alert(typeof a); //string alert(typeof b); //number alert(typeof c); //boolean alert(typeof d); //undefined alert(typeof e); //object alert(typeof f); //object
二,instanceof
概念——检验引用类型
目的——判断对象是Array, RegExp
注意——object是所有对象的基类,
例子——
var array=new Array(); var object=new Object(); var regexp=new RegExp(); function func(){}; var func1=new func(); alert(array instanceof Array); //true alert(object instanceof Object); //true alert(regexp instanceof RegExp); //true alert(func1 instanceof func); //true
总结: 其实typeof和instanceof的目的都是检测变量的类型,两个的区别在于typeof一般是检测的是基本数据类型,instanceof主要检测的是引用类型
参考博客
一,http://www.cnblogs.com/cheng_jiai/archive/2010/10/07/1845168.html
二,http://blog.csdn.net/myhahaxiao/article/details/6740542
小策,加油!!!