在 JS 中是否有更好的方法来获取变量的类型typeof
?当你这样做时它工作得很好:
> typeof 1
"number"
> typeof "hello"
"string"
但当你尝试时它是无用的:
> typeof [1,2]
"object"
>r = new RegExp(/./)
/./
> typeof r
"function"
我知道instanceof
,但这需要你事先知道类型。
> [1,2] instanceof Array
true
> r instanceof RegExp
true
有没有更好的办法?
安格斯·克罗尔 (Angus Croll) 最近写了一篇关于此的有趣博客文章 -
http://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/
他详细介绍了各种方法的优缺点,然后定义了一种新方法“toType” -
var toType = function(obj) {
return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)