js数据类型如果用typeof判断的话,对于数组、null、对象来说,都会返回object。
要想区别对象、数组、函数单纯使用typeof分辨不了,所以使用Object.prototype.toString.call
toString()方法和Object.prototype.toString.call()方法对比
var arr=[1,2];//直接对一个数组调用toString()arr.toString();// "1,2"//通过call指定arr数组为Object.prototype对象中的toString方法的上下文Object.prototype.toString.call(arr); //"[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]
