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。