JS判断一个是否为函数或者为数组(数据类型的判断)

如下代码所示:
有几个细节要注意
1)typeof(arr) === ‘object’ 使用typeof数组,得到的是一个object,而不 是返回Array或者array
2)console.info(1 instanceof Number) //false 这里之所以为false,是因为数字1为基本数据类型,而instanceof判断一个对象是否是另一个对象的实例,基本数据类型不是对象,可以 let num = new Number(1) 就为true
3)使用typeof 判断类型为小写 如 object function 而不是大写Object,Function

    //判断是否是一个数组
    let a = [2,3]
    isArray(a)
    function isArray(arr){
        console.info(typeof(arr) === 'object')  //true
        console.info(arr instanceof Array) //true
        console.info(arr.constructor === Array)//true
        console.info(Object.prototype.toString.call(arr)==='[object Array]') //true
    }

    //判断是否是一个函数
    isFunction(isArray)
     function isFunction(fn){
        console.info(typeof(fn)==='function')  //true
        console.info(fn instanceof Function) //true
        console.info(fn.constructor===Function) //Function
        console.info(Object.prototype.toString.call(fn)==='[object Function]') //true
     }

发布了46 篇原创文章 · 获赞 8 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/yuanqi3131/article/details/83025944
今日推荐