思路
1 ).根据 typeof()
的返回值将数据分为2种情况
a.返回值为 'string'
'number'
'boolean'
'undefined'
'function'
(直接返回 typeof() 的返回值)
b.返回值为'object'
2 ).再将 typeof()
返回值为 'object'
的数据分为2种情况
a.null
(直接返回自身)
b.包装类
对象
数组
(再进行细分)
var a = new Number(1);
function type(target) {
var ret = typeof(target);
console.log(ret)
var template = {
//包装类、对象、数组
"[object Number]" : "number - object",
"[object String]" : "string - object",
"[object Boolean]" : "boolean - object",
"[object Object]" : "object",
"[object Array]" : "array"
}
//找出 null
if(target === null){
return null;
}
if(ret == "object"){
var str = Object.prototype.toString.call(target);
return template[str];
}else{
//原始值 和 function
return ret;
}
}
console.log(type(a))
//number - object
复制代码