js中通过Object.prototype.toString方法----精确判断对象的类型

判断是否为函数

function isFunction(it) {
        return Object.prototype.toString.call(it) === ‘[object Function]‘;
    }

判断是否为数组:

function isArray(o) { 
  return Object.prototype.toString.call(o) === ‘[object Array]‘;  
}

由于 JavaScript 中一切都是对象,任何都不例外,对所有值类型应用 Object.prototype.toString.call() 方法结果如下:
console.log(Object.prototype.toString.call(123)) //[object Number]
console.log(Object.prototype.toString.call(‘123‘)) //[object String]
console.log(Object.prototype.toString.call(undefined)) //[object Undefined]
console.log(Object.prototype.toString.call(true)) //[object Boolean]
console.log(Object.prototype.toString.call({})) //[object Object]
console.log(Object.prototype.toString.call([])) //[object Array]
console.log(Object.prototype.toString.call(function(){})) //[object Function]

时间: 2024-12-20 22:56:46

js中通过Object.prototype.toString方法----精确判断对象的类型的相关文章

JavaScript中Object.prototype.toString方法的原理

在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. ? 1 2 var arr = []; console.log(Object.prototype.toString.call(arr)) //"[object Array]" 本文要讲的就是,toString方法是如何做到这一点的,原理是什么. ECMAScript 3 在ES3中,Object.prototype.toString方法的规范如下:

JavaScript:Object.prototype.toString方法的原理

在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. var arr = []; console.log(Object.prototype.toString.call(arr)) //"[object Array]" 本文要讲的就是,toString方法是如何做到这一点的,原理是什么. ECMAScript 3 在ES3中,Object.prototype.toString方法的规范如下: 15.2.

用Object.prototype.toString.call(obj)检测对象类型原因分析

用Object.prototype.toString.call(obj)检测对象类型原因分析 更新时间:2018年10月11日 08:46:33   投稿:laozhang    我要评论 在本篇文章里我们给大家剖析了用Object.prototype.toString.call(obj)检测对象类型的原因,需要的朋友们可以学习下. 这是一个十分常见的问题,用 typeof 是否能准确判断一个对象变量,答案是否定的,null 的结果也是 object,Array 的结果也是 object,有时候

利用Object.prototype.toString.call(obj)判断数据类型

1.typeof判断数据类型 typeof可以用来判断基本数据类型,对于Array.Error.RegExp.Number.Function只能判断为object 2.使用Object.prototype.toString.call(obj)判断数据类型 var a=new Number(12); var toString=Object.prototype.toString; console.log(toString.call(a));//[object Number] console.log(

为什么用Object.prototype.toString.call(obj)检测对象类型?

console.log(Object.prototype.toString.call("jerry"));//[object String]console.log(Object.prototype.toString.call(12));//[object Number]console.log(Object.prototype.toString.call(true));//[object Boolean]console.log(Object.prototype.toString.call

从toString()方法到Object.prototype.toString.call()方法

一.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.call() 区分对象类型

在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种.对于数组.函数.对象,使用 typeof 都会统一返回 “object” 字符串. 有这样一种方法,即使用 Object.prototype.toString.call() 来确定类型. 由于 JavaScript 中一切都是对象,任何都不例外,对所有值类型应用 Object.prototype.toStri

检测变量类型之typeof,instanceof,Object.prototype.toString

在JS中有时候是需要对一个变量进行检测的,检测到这个变量是什么类型之后,我们就可以做相应的处理. 方法一typeof typeof方法主要用于基本类型的检测,在检测Boolean,number,undefined,string的时候非常好用.比如: 1 var test1= 1; 2 alert(typeof test1);//输出number 3 var test2 = ""; 4 alert(typeof test2);//输出string 5 var test3 = undefi

Array.isArray and Object.prototype.toString.call

Array.isArray() 用于确定传递的值是否是一个 Array. Array.isArray([1, 2, 3]); // true Array.isArray({foo: 123}); // false Array.isArray("foobar"); // false Array.isArray(undefined); // false Array.isArray(null); // false Array.isArray(new Array()); // true Arr