整理了四種判斷數組類型方法:javascript
方法一: instance of方法java
//聲明變量 var arr = new Array(); var newArr = []; var str = ""; var nul = null; var und = undefined; var obj = new Object(); var newObj = {}; //聲明函數 function isArray(obj){ return obj instanceof Array ? true : false; } //調用函數,並獲取結果 var result = isArray(arr); //打印結果 console.log("result:",result); //true
方法二:構造函數(constructor)方法數組
//聲明函數 function isArray(obj) { var result = obj.constructor == Array ? true : false; return result; } //測試結果 console.log(isArray([])); console.log(isArray({})); console.log(isArray(new Array())); console.log(isArray(new Object())); console.log(isArray("string")); console.log(isArray(123)); console.log(isArray(true));
方法三:call方法函數
解釋:測試
function isArray(obj) { return Object.prototype.toString.call(obj); } var arr=[2,5,6,8]; var obj={name:'zhangsan',age:25}; var fn = function () {} console.log(isArray(arr)); //[object Array] console.log(isArray(obj)); //[object Object] console.log(isArray(fn)); //[object function]
方法四:isArray方法this
// ES5定義了Array.isArray: var arr = isArray([]); //true // var arr = isArray({}); //false console.log("arr:", arr); function isArray(obj) { var result = Array.isArray(obj) ? true : false; return result; }