如下代码所示:
有几个细节要注意
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
}