JS中的instanceof和typeof都是用来判断变量类型的,它们之间有什么区别呢?

2011-08-07 16:59:31

0

最新答案:1

typeof 只可以判断出6种基本类型 http://www.asktest.com/questions/3/
undefined、number、boolean、string、object与function

Array,Null等类型通过typeof 判断都返回 "objec"这正是typeof的局限。

如果我们希望获取一个对象是否是数组,或判断某个变量是否是某个对象的实例则要选择使用instanceof。instanceof用于判断一个变量是否某个对象的实例,如var a=new Array();alert(a instanceof Array);会返回true,同时alert(a instanceof Object)也会返回true;这是因为Array是object的子类。再如:function test(){};var a=new test();alert(a instanceof test)会返回true。

谈到instanceof我们要多插入一个问题,就是function的arguments,我们大家也许都认为arguments是一个Array,但如果使用instaceof去测试会发现arguments不是一个Array对象,尽管看起来很像。

2011-08-07 17:08:25 tjubao@163.com

0
没有您想要的答案吗? 浏览其他问题 问你自己的问题

赞助