一个JavaScript类型判断函数
根据ECMA-262中的解释,Object.prototype.toString(),将返回对象实例的类型,返回格式[object class ]字符串。所以 通过 slice截取’class’值,也就是类型值。其中null与undefined例外,因为他们返回的是IE中[object Object],标准浏览器[object Window]。因此单独拿出判断。
如:
function echo(str)
{
document.write(str + "
“);
}
var toString = Object.prototype.toString,undefined;
var arr = [1,2,3];
echo(toString.call(arr)); //[object Array]
echo(toString.call(null));
//IE:[object Object], FF:[object Window]
echo(toString.call(undefined));
//IE:[object Object],FF:[object Window]
有如下函数:
var is = function(obj,type){
var toString=Object.prototype.toString,undefined;
return obj===null&&type==='Null'||
obj===undefined&&type==='Undefined'||
toString.call(obj).slice(8,-1)===type;}
//原文中有小括号包裹每个逻辑与运算,但根据运算符优先级,括号可以省略
//第一行声明undefined,个人理解是为了提高性能,不必再去顶级作用域中查询undefined.
原创文章如转载,请注明:转载自蓝色骑兵 [ http://www.wkeke.cn/ ] 本文链接地址:http://www.wkeke.cn/archives/javascript-typeof-function/
相关文章
没有牛人指点,你可以成为第一个!
还没有评论。
请牛人赐教:
