追梦子博客版权所有。
// 判断arr是否为一个数组,返回一个bool值
方法1:
function isArray(arr) { var str = arr.__proto__.constructor; var reg = /function ([\w]+)\(/; return reg.exec(str)[1]==="Array";}console.log(isArray([]))
方法2:
function isArray(arr) { var str = {}.toString.call(arr); var reg = /\[object (\w+)\]/; return reg.exec(str)[1]==="Array";}console.log(isArray([]));
方法3:
function isArray(arr) { return arr instanceof Array;}console.log(isArray([])); // 此方法不建议使用,因为判断Object也返回true
方法4:
function isArray(arr) { return Array.prototype.isPrototypeOf(arr);}console.log(isArray([]));// 不建议使用,因为只要是有继承,都会返回true
// 判断fn是否为一个函数,返回一个bool值
方法1:
function isFunction(fn) { return (typeof fn)==="function";}console.log(isFunction(function(){}))
其他方法和判断数组一样。