js如何判断是否为数组
墨初 Web前端 297阅读
js脚本中判断一个变量是否为数组,有多种方法可以实现。下面就说几种在js脚本中判断变量是否为数组的方法。
js判断是否为数组的方法
1、js Array.isArray()方法
Array.isArray()是ES6标准提供的一个判断数组的方法,可以参考下面的示例进行使用。
例:
var arr = ['1','2']; var str = '1'; var a = undefined; var b = null; //函数包装一下 function isArray(arr) { return Array.isArray(arr) } console.log(isArray(arr)); // true console.log(isArray(str)); // false console.log(isArray(a)); //false console.log(isArray(b)); //false
2、通过一些构造函数来判断
instanceof用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上。
例:
function Person(){}; var p = new Person(); console.log(p instanceof Person);//true //数组判断 var a = ['1','2']; var b = {}; function isArray(arr){ return arr instanceof Array; } console.log(isArray(a));//true console.log(isArray(b));//false
3、通过constructor判断实例是否指向构造函数
实例的构造函数属性constructor指向构造函数,那么通过constructor属性也可以判断是否为一个数组。
例:
var a = ['1','2','3']; function isArray(a){ return a.constructor === Array; } console.log(isArray(a));//true
4、通过 Object.prototype.toString.call()判断对象的不同类型
Object.prototype.toString().call()可以获取到对象的不同类型。
例:
var a = ['1','2']; function isArray(arr){ if(Object.prototype.toString.call(arr) === '[object Array]'){ return true }else{ return false } } console.log(isArray(a));//true
以上就是javascript中4中判断变量是否为数组的方法,希望对大家有帮助吧。