typeof 123 //‘number’
typeof “abc” // ‘string’
typeof function(){} //‘function’
typeof [] // ‘object’ *******
typeof {} // ‘object’ *******
typeof null // ‘object’ *******
typeof undefined // ‘undefined’
由上可知并不能精确识别 数组 对象 和 null
解决办法:
Object.prototype.toString.call()
console.log(Object.prototype.toString.call(null));//[object Null]
console.log(Object.prototype.toString.call(undefined)); //[object Undefined]
console.log(Object.prototype.toString.call(true)); //[object Boolean]
console.log(Object.prototype.toString.call('str'));//[object String]
console.log(Object.prototype.toString.call(123));//[object Number]
console.log(Object.prototype.toString.call(f1));//[object Function]
console.log(Object.prototype.toString.call([]));//[object Array]
console.log(Object.prototype.toString.call({}));//[object Object]
console.log(Object.prototype.toString.call(new Date));//[object Date]