开发中,不免需要对对象类型进行判断,列举下常见的判断方法:

1、typeof:对于function string number undifined boolean object(基本数据类型)都有效,注意返回值是字符串。

      但null、Array等引用类型检测出Object.

2、instanceof: 用于检测对象是否是特定类的一个实例,返回值是布尔值,最好和typeof配合使用(typeof值为Object时候用instanceof进行进一步判定)。继承链上也可以用于判断是否继承了某对象。

3、对象.constructor: 可以检测出function,string,number,boolean,object,array. 但null,undefined出错。

4、Object.prototype.toString.call(对象):可以检测出以上各种类型,但不知道是否可以检测出继承了那些类,还不会继承。


希望牛人大大们解答,交流.

参考:http://www.nowamagic.net/librarys/veda/detail/1250