您的位置:首页 > Web前端 > JavaScript

javascript typeof 和 instanceof 的区别和联系[轉]

2012-02-10 15:39 585 查看
typeof是什么
typeof 是一个操作符,主要的目的是检测一个变量是不是基本数据类型的变量,同时也可以说是确定一个变量是字符串,数值,布尔值,还是undefined
的最佳工具。
typeof 示例代码
[javascript] view plaincopyvar a="zhangqian";
var b=true;
var c=10;
var d;
var e=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

typeof应该注意的问题?
使用typeof操作符的时候,如果检测对象是函数,那么操作符返回"function" ,如果检测对象是正则表达式的时候,在Safari和Chrome中使用typeof的时候会错误的返回"function",
其他的浏览器返回的是object.
instanceof是什么?
instanceof主要的目的是检测引用类型,判断对象是Array,还是RegExp!
instanceof示例代码?
[javascript] view plaincopyvar 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

instanceof应该注意的问题?
大家都知道Object是所有对象的基类,所以在alert(array instanceof Object) 返回的结果同样也是true,还有就是instanceof的语法一定不要写错了 variable instanceof constructor !
typeof 和instanceof的联系
其实typeof和instanceof的目的都是检测变量的类型,两个的区别在于typeof一般是检测的是基本数据类型,instanceof主要检测的是引用类型!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: