判断数据类型的typeof,可以正确判断undefinde,boolean,number,String,function.但是对于null,date(日期)等都会认为是object。
通过Object.prototype.toString,可以准确判断出类型。
使用Object原型链上的toString,和Array的toString方法有一定的区别。Array的toString()
方法返回一个字符串,表示指定的数组及其元素。当Array中没有toString,会沿着Array的原型链找到Object上的toString。
let a = Object.prototype.toString
console.log(a.call(111)) //Number
console.log(a.call('a')) //String
console.log(a.call(true)) //Boolean
console.log(a.call(null)) //Null
console.log(a.call(new Date())) //Date
console.log(a.call([])) //Array
console.log(a.call({})) //Object
console.log(a.call(function(){})) //Function
Object.prototype.toString.call()方法可以正确判断所有类型。