一个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/

Tags:


相关文章


没有牛人指点,你可以成为第一个!

还没有评论。

请牛人赐教: