js类型判断有很多方法
一、数据类型判断之 typeof
typeof可以解决大部分的数据类型判断
var a = "string";
console.log(a); //string
var a = 1;
console.log(typeof a); //number
var a = false;
console.log(typeof a); //boolean
var a;
console.log(typeof a); //undfined
var a = null;
console.log(typeof a); //object
var a = document;
console.log(typeof a); //object
var a = [];
console.log(a); //[]
var a = function() {};
console.log(typeof a) //function 除了可以判断数据类型还可以判断function
这样看起来就很明显了,判断的类型并不是很详细。好多类型都是object。
二、instanceof
var a=[];
console.log(a instanceof Array) //返回true
三、constructor
console.log([].constructor == Array);
console.log({}.constructor == Object);
console.log("string".constructor == String);
console.log((123).constructor == Number);
console.log(true.constructor == Boolean);
判断是否为数组
function isArray(object){
return object && typeof object==='object' &&
Array == object.constructor;
}
四、最简单的方法
function isArray(o) {
return Object.prototype.toString.call(o) === ‘[object Array]‘;
}