Object.prototype.toString.call()来获取数据类型,除了NaN判断为Number类型,其余类型判断都是准确的
console.log(Object.prototype.toString.call('string')); // [object String]
console.log(Object.prototype.toString.call(0)); // [object Number]
console.log(Object.prototype.toString.call(NaN)); // [object Number]
console.log(Object.prototype.toString.call(null)); // [object Null]
console.log(Object.prototype.toString.call(undefined)); // [object Undefined]
console.log(Object.prototype.toString.call(new Date())); // [object Date]
console.log(Object.prototype.toString.call([1,2,3])); // [object Array]
console.log(Object.prototype.toString.call({})); // [object Object]
console.log(Object.prototype.toString.call(function (){})); // [object Function]
console.log(Object.prototype.toString.call(false)); // [object Boolean]
console.log(Object.prototype.toString.call(Symbol())); // [object Symbol]