js类型判断,有如下三种:
1、typeof
2、instanceof
3、Object.prototype.toString.call
4、arg.__proto__contructor.name
以判断数组为例,有如下几种方法
function isArray(arg){
return (arg instanceof Array);
}
instanceof 是用于判断构造函数的prototype的某一个属性所指向的对象是否存在目标实例的原型链上。
null instanceof object 为 false
方法二:
function isArray(arg){
return Object.prototype.toString.call(arg) == '[object Array]' ? true : false;
}
方法三:
function isArray(arg){
return arg.__proto__.constructor.name == 'Array' ?true : false;
}
其它:
typeof 对数组进行判断时会将它视为“object”,但typeof可以检测出8中值:es5的 string, number, undefined, function, boolean, object,es6的symbol和es10的bigint。