7,手写类型判断函数
使用typeof,对于null和引用对象来说,输出的都是Object,因此没有办法来分辨到底是是什么引用类型
<script>
function getType(value){
// 判断数据是null的情况
if(value === null){
return value+'';
}
// 判断数据是引用类型的情况
if(typeof value === 'object'){
// valueClass得到的是[object Map],string类型
let valueClass = Object.prototype.toString.call(value),
// [object Map]将这个字符串用空格分开,分为数组,然后再将后面的分开
type = valueClass.split(' ')[1].split("")
type.pop()
// 将数组转为字符串,并且首字母大写
return type.join("").toLowerCase()
}else{
// 判断数据是基本数据类型的情况和函数的情况
return typeof value
}
}
console.log(getType(new Map()))
</script>