标签:
在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法.
示例:
var array=[1,2,3]; Object.prototype.toString.call(array) ;//"[object Array]" var obj={name:‘Tom‘}; Object.prototype.toString.call(obj) ;//"[object Object]" var string=‘hi‘; Object.prototype.toString.call(string) ;//"[object String]" var num=1; Object.prototype.toString.call(num);//"[object Number]"
当然,还有其他方式,不过麻烦了一些。
如typeof,但typeof是测不出被检测的对象是Object(对象)还是Array(数组),因为Object包含了Array,如:
var array=[1,2,3]; var obj={name:‘Tom‘}; typeof array;//"object" typeof obj;//"object"
可以看到返回的都是"object"。
用instanceof可以像 Object.prototype.toString一样准确地检测js类型。如:
var o=[]; alert(o instanceof Array);//true alert(o instanceof Object);//true var f=function(){} alert(f instanceof Function);//true alert(f instanceof Object);//true
小结:有简单的就用简单直接的,所以用Object.prototype.toString.call(obj)这个方式就好。
标签:
原文地址:http://www.cnblogs.com/wql025/p/4979606.html