用法:
- 对于原始类型来说,除了
null
,使用typeof
都可以显示正确的类型
typeof 1; //'number'
typeof '1'; //'string'
typeof undefined; //'undefined'
typeof true; //'boolean'
typeof Symbol(); //'symbol'
null
:
typeof null; //'object'
- 对于引用数据类型,除了函数之外,都会显示’object’
typeof []; //'object'
typeof {
}; //'object'
typeof console.log; //'function'
重写typeof()
第一种
function _typeof(value){
let type = Object.prototype.toString.call(value).split('')[-1].split(']')[0].toLowerCase()
if(type == 'null' || type == 'function') return 'object'
return type
}
测试代码:
console.log(null, _typeof(null))
console.log(undefined, _typeof(undefined))
console.log({
}, _typeof({
}))
console.log([], _typeof([]))
console.log(20, _typeof(20))
console.log('123', _typeof('123'))
console.log(new Date(), _typeof(new Date()))
console.log(new Function(), _typeof(new Function()))
console.log(new RegExp(), _typeof(new RegExp()))
console.log(Symbol(), _typeof(Symbol()))