Last active
April 22, 2022 08:59
-
-
Save DefectingCat/0a35cf5fde795f7f09c0a67ad7475120 to your computer and use it in GitHub Desktop.
利用Object.toString判断更准确的数据类型
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// new | |
function type(target) { | |
let temp = { | |
"[object String]": 'ObjectString', | |
"[object Number]": 'ObejctNumber', | |
"[object Array]": 'Array', | |
"[object RegExp]": 'RegExp', | |
"[object Date]": 'Date' | |
} | |
if (target === null) { | |
return 'null'; | |
} | |
if (typeof(target) == 'object') { | |
let str = Object.prototype.toString.call(target); | |
return temp[str]; | |
} else { | |
return typeof(target); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 字符串 数字(new Number()) boolean 对象 数组 函数 null undefined RegExp Date | |
function type(target) { | |
let tos = Object.prototype.toString.call(target); | |
switch (tos) { | |
case "[object String]": | |
return 'String'; | |
case "[object Number]": | |
if (typeof(target) === "number") { | |
return 'Number'; | |
} else { | |
return 'Object Number'; | |
} | |
case "[object Boolean]": | |
return 'Boolean'; | |
case "[object Object]": | |
return 'Object'; | |
case "[object Array]": | |
return 'Array'; | |
case "[object Function]": | |
return 'Function'; | |
case "[object Null]": | |
return 'Null'; | |
case "[object Undefined]": | |
return 'Undefined'; | |
case "[object RegExp]": | |
return 'RegExp'; | |
case "[object Date]": | |
return 'Date'; | |
default: | |
return '嘤嘤嘤'; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment