思路
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"}//找出 nullif(target === null){return null;}if(ret == "object"){var str = Object.prototype.toString.call(target);return template[str];}else{//原始值 和 functionreturn ret;}
}
console.log(type(a))
//number - object
復制代碼