利⽤JS判断元素是否为数组的⽅法⽰例
此处提供可供验证的数据类型
let a = [1,2,3,4,5,6];
let b = [
{name: '张飞', type: 'tank'},
{name: '关⽻', type: 'soldier'},
{name: '刘备', type: 'shooter'},
];
let c = 123;
let d = 'www';
let e = {name: '安琪拉', type: 'mage'};
1.通过Array.isArray()
Array.isArray()能判断⼀个元素是否为数组,如果是就返回true,否则就返回false
console.log(Array.isArray(a)); // true
console.log(Array.isArray(b)); // true
console.log(Array.isArray(c)); // false
console.log(Array.isArray(d)); // false
console.log(Array.isArray(e)); // false
2.通过instanceof判断
instanceof运算符⽤于检测某个实例是否属于某个对象原型链中
console.log(a instanceof Array); // true
console.log(b instanceof Array); // true
console.log(c instanceof Array); // false
console.log(d instanceof Array); // false
console.log(e instanceof Array); // false
还可以⽤于判断对象
console.log(e instanceof Object); // true
判断是否为数组就是检测Arrray.prototype属性是否存在于变量数组(a,b)的原型链上,显然a,b为数组,拥有Arrray.prototype 属性,所以为true
3.通过对象构造函数的constructor判断
Obiect的每个实例都有构造函数constructor,保存着创建每个对象的函数
console.structor === Array); // true
console.structor === Array); // true
以下包含判断其它的数据类型验证
console.structor === Number); // true
console.structor === String); // true
console.structor === Object); // true
4.通过String.call()判断
通过原型链查调⽤
console.log(String.call(a) === '[object Array]'); // true
console.log(String.call(b) === '[object Array]'); // true
以下包含判断其它的数据类型验证
console.log(String.call(c) === '[object Number]'); // true
console.log(String.call(d) === '[object String]'); // true
js原型和原型链的理解
console.log(String.call(e) === '[object Object]'); // true
5.通过对象原型链上的isPrototypeOf()判断
Array.prototype属性为Array的构造函数原型,⾥⾯包含有⼀个⽅法 isPrototypeOf() ⽤于测试⼀个对象是否存在于;另⼀个对象的原型链上。
console.log(Array.prototype.isPrototypeOf(a)); // true
console.log(Array.prototype.isPrototypeOf(b)); // true
console.log(Array.prototype.isPrototypeOf(c)); // false
console.log(Array.prototype.isPrototypeOf(d)); // false
console.log(Array.prototype.isPrototypeOf(e)); // false
总结
到此这篇关于利⽤JS判断元素是否为数组的⽂章就介绍到这了,更多相关JS判断元素为数组内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。