判断一个对象的类型: /** * 判断对象是否为数组 * @param {Object} source 待判断的对象 * @return {Boolean} true|false */ Object.isArray = function (source) { return '[object Array]' == Object.prototype.toString.call(source); }; 测试: Object.isArray = function (source) { return '[…
在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种.对于数组.对象来说,其关系错综复杂,使用 typeof 都会统一返回 “object” 字符串. 要想区别对象.数组单纯使用 typeof 是不行的.或者你会想到 instanceof 方法,例如下面这样: var a = {}; var b = []; var c = function () {}; //a…
1.使用toString()方法来检测对象类型 可以通过toString() 来获取每个对象的类型.为了每个对象都能通过 Object.prototype.toString() 来检测,需要以 Function.prototype.call() 或者 Function.prototype.apply() 的形式来调用,把需要检测的对象作为第一个参数传入. var toString = Object.prototype.toString; toString.call(new Date); // […
Object.prototype.toString.call() 区分对象类型 在JavaScript中数据类型分为:1.基本类型,2.引用类型 基本类型:Undefined,Boolean,String,Number,Null 引用类型:Object (Array,Date,RegExp,Function) var a = 'hello world'; var b = []; var c = function(){}; 1 2 3 我们用不同的判断类型的方法来判断上面三个变量的类型:(编译工具…
源码中有这样一段: class2type = {}, toString = class2type.toString,   function type(obj) { //obj为null或者undefined时,直接返回'null'或'undefined' return obj == null ? String(obj) : class2type[toString.call(obj)] || "object" }   // Populate the class2type map //填充…
在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种.对于数组.函数.对象来说,其关系错综复杂,使用 typeof 都会统一返回 “object” 字符串. 要想区别对象.数组.函数单纯使用 typeof 是不行的.或者你会想到 instanceof 方法,例如下面这样: var a = {}; var b = []; var c = function () {…
一.toString方法和Object.prototype.toSting.call()的区别 var arr=[1,2]; 直接对一个数组调用toString()方法, console.log(arr.toString());    //输出1,2 现在通过call方法指定arr数组为Object.prototype对象中的toString方法的上下文. console.log(Object.prototype.toString.call(arr));    //输出[Object Array…
Object.prototype.toString方法返回对象的类型字符串,因此可以用来判断一个值的类型. 调用方法: Object.prototype.toString.call(value) 不同数据类型的Object.prototype.toString方法返回值如下. 数值:返回[object Number]. 字符串:返回[object String]. 布尔值:返回[object Boolean]. undefined:返回[object Undefined]. null:返回[ob…
Object.prototype.toString & typeof Object.prototype.toString 获取某个对象属于哪种内置类型 typeof  得到某个对象的类型 差别: 举个样例: var arr = new Array(); typeof(arr); //object Object.prototype.toString.call(arr); //[Object Array] 推断某个对象值属于哪种内置类型 Object.prototype.toString ECMAS…
经常能碰到Object.prototype.toString.call对参数类型进行判断,一开始只知道怎么使用,却不了解具体实现的原理,最近恶补了一下相关知识,写个笔记加强理解,有什么不对的请指教. 首先看一下针对不同类型的参数得到的结果,加上浏览器都兼容,所以,这也成为经常用于参数类型判断的做法 Object.prototype.toString.call([]) //"[object Array]" Object.prototype.toString.call({}) //&quo…