js Object.prototype.toString.call(value)

偶然间发现了一个判断各种数据类型的方法
Object.prototype.toString.call(value);

Object.prototype.toString.call(null);//"[object Null]"
Object.prototype.toString.call(undefined);//"[object Undefined]"
Object.prototype.toString.call("abc");//"[object String]"
Object.prototype.toString.call(123);//"[object Number]"
Object.prototype.toString.call(true);//"[object Boolean]"

function fn(){
    console.log("test");
};
Object.prototype.toString.call(fn);//"[object Function]"

var date = new Date();
Object.prototype.toString.call(date);//"[object Date]"

var arr = [1,2,3];
Object.prototype.toString.call(arr);//"[object Array]"

var reg = /^[0-9]$/gi;
Object.prototype.toString.call(reg);//"[object RegExp]"

为什么是这样呢 他的原理是什么呢 于是我继续查阅资料 看到了这样一篇文章
http://www.cnblogs.com/ziyunfei/archive/2012/11/05/2754156.html
他已经从ES3介绍到ES6了,很完善了 我就不再写了 想了解原理的小伙伴可以去看看0.0

猜你喜欢

转载自blog.csdn.net/wen_binobject/article/details/80095300
今日推荐