- 前言 如何判断一个对象或一个值是否是一个数组,在面试或工作中我们常常会遇到这个问题,既然出现频率高,想着还是做个整理,那么本文主要基于几种判断方式,以及方式判断的原理,是否存在问题展开讨论。
1. instanceof方法
instanceof运算符是用来测试一个对象是否在其原型链原型构造函数的属性。
var arr = [];
arr instanceof Array; //true
2. isArray方法
Array.isArray([]);//true
Array.isArray(123);//false
3. constructor方法
constructor属性返回对创建此对象的数组函数的引用,就是返回对象相对应的构造函数。
var arr = [];
arr.constructor == Array;//true
4. Object.prototype.toString方法
Object.prototype.toString.call([])==='[object Array]'//true
写个方法
function isArray(obj){
return Object.prototype.toString.call(obj) ===
'[object Array]'
}
var arr = [1,2,3];
console.log(isArray(arr));//true
总结
春招冲锋,先从基础入手面试题!大家一起加油吧!