typeof
不能很好地工作,例如返回typeof null
。object
这种改进的内置或定制替代品有没有更好的替代品?
user1467418
问问题
1594 次
1 回答
11
简而言之,您可以使用此功能:
var toType = function (obj) {
return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
}
toType(null); // -> "null"
toType({}); // -> "object"
toType([]); // -> "array"
toType("asdf"); // -> "string"
toType(/asdf/); // -> "regexp"
// etc.
您应该查看这篇文章,详细了解它为何以这种方式工作以及您可以从中获得什么。它总是会返回一个字符串,就像typeof
.
于 2012-06-19T20:29:19.543 回答