Object.prototype.toString.call() 区分对象类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object.prototype.toString.call() 区分对象类型相关的知识,希望对你有一定的参考价值。
在 javascript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种。对于数组、函数、对象,使用 typeof 都会统一返回 “object” 字符串。
有这样一种方法,即使用 Object.prototype.toString.call() 来确定类型。
由于 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]
判断数组和函数的方法:
// 判断arr是否为一个数组,返回一个bool值 function isArray(arr) { return ‘[object Array]‘ === Object.prototype.toString.call(arr); } // 判断fn是否为一个函数,返回一个bool值 function isFunction(fn) { return ‘[object Function]‘===Object.prototype.toString.call(fn); }
以上是关于Object.prototype.toString.call() 区分对象类型的主要内容,如果未能解决你的问题,请参考以下文章
Object.prototype.toString.call()方法
Object----Object.prototype.toString.call()方法的使用
Object.prototype.valueOf()和Object.prototype.toString()
Object.prototype.toString.call()方法