1. 程式人生 > >JS判斷一個是否為函式或者為陣列(資料型別的判斷)

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
     }