zoukankan      html  css  js  c++  java
  • Array对象的判定

      /*
        关于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;
        }
  • 相关阅读:
    更易型算法(Manipulating Algorithms)
    迭代器之配接器
    Windows下BBv2安装编译libtorrent
    swfupload简单使用
    Openx 中文编码解决方案
    常见c语言编译错误解析(转)
    新建一个scrapy项目
    判断两个日期的时间部分之差
    javascript弹出子窗口并返回值
    转:浅析ASP.NET中页面传值的几种方法
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/6437679.html
Copyright © 2011-2022 走看看