博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Array对象的判定
阅读量:4658 次
发布时间:2019-06-09

本文共 1541 字,大约阅读时间需要 5 分钟。

/*    关于JS对象类型的判断,最复杂的在于RegExp和Array了,判定RegExp的情形不较少,而Array就比较多了,下面就是判断Array的方法     */    //方法一:利用instanceof来判断对象是不是Array的实例    function isArray(arr){        return arr instanceof Array;    }    //方法二:利用constructor来判断    function isArray(arr)    {        return !!arr && arr.constructor==Array;    }    //方法三:利用constructor和array的内置属性(实例方法)来判断一个对象是否是Array类型    function isArray(arr) {        return arr && typeof arr==="object" &&  'splice' in arr && 'join' in arr;    }    //方法四:通过sort方法的类型判断arr是不是Array对象的实例    function isArray(arr)    {        return typeof arr.sort==="function";    }    //方法五:通过Array.prototype.toString.call()方法来判断对象    function isArray(o) {        try        {            Array.prototype.toString.call(o);            return true;        }        catch (e)        {}        return false;    }    //方法六:通过typeof和数组的length属性来判断    function isArray(o) {        if(o && typeof o=="object" && typeof o.length=="number" && isFinite(o.length))        {            //通过length属性是否符合原生数组的length的特性来进行双重判定            var _originalLength=o.length;            o[o.length]="_test_";            var _newLength=o.length;            o.length=_originalLength;            return _newLength==o.length+1;        }        return false;    }    //方法七:    function isArray(array) {        var result=false;        try        {            new array.constructor(Math.pow(2,32));        }        catch(e)        {            result=/Array/.test(e.message);        }        return result;    }

 

转载于:https://www.cnblogs.com/GreenLeaves/p/6437679.html

你可能感兴趣的文章
Delphi-操作剪贴板
查看>>
hdu 1029
查看>>
Docker 容器的网络连接 & 容器互联
查看>>
吾爱专题脱壳练习----压缩壳练习之三
查看>>
LeetCode -- Palindrome Linked List
查看>>
栈应用——逆波兰式表达式的值
查看>>
vscode 快速生成html
查看>>
HTML5 全屏化操作功能
查看>>
返本求源——DOM元素的特性与属性
查看>>
4、C#进阶:MD5加密、进程、线程、GDI+、XML、委托
查看>>
部署DLL webservices 若干费脑点
查看>>
zabbix监控报错zabbix server is not running解决方法
查看>>
MyEclips快捷键,多行注释
查看>>
【原】ios打包ipa的四种实用方法(.app转.ipa)
查看>>
python中的nonloca和global
查看>>
JavaScript延时执行函数中对call和apply的应用
查看>>
zookeeper-3.4.5-cdh5.1.0 完全分布式安装
查看>>
1.2输出100以内的素数&输出前100个素数。
查看>>
小白的python之路11/14
查看>>
客户端传入数据的校验-RestController进阶
查看>>