在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"。
文章地址https://www.yii666.com/article/756336.html 网址:yii666.com用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)这个方式就好。文章来源地址:https://www.yii666.com/article/756336.html