Javascript 에서 변수 가 배열 인지 대상 인지 판단 합 니 다(array 또는 object)

자 바스 크 립 트 변수 가 array 인지 obiect 인지 어떻게 판단 합 니까?정 답:1.type:of 로 만 이 변 수 를 검사 하면 array 든 object 든'object'로 돌아 갑 니 다.이 문제 의 실행 가능 한 답 은 이 변수 가 object 인지 확인 하고 이 변수 에 숫자 길이 가 있 는 지 확인 하 는 것 입 니 다(빈 array 일 때 길이 가 0 일 수도 있 습 니 다).그러나 매개 변수 대상[arguments object](함 수 를 만 드 는 모든 매개 변수 에 전달)은 상기 방법 에 적 용 될 수 있 습 니 다.기술적 으로 매개 변수 대상 은 array 가 아 닙 니 다.또한 대상 이 a.length 속성 이 있 을 때 이 방법 도 성립 되 지 않 습 니 다.
 
// Real array
var my_array = [];
// Imposter! !
var my_object = {};
my_object.length = 0;
// Potentially faulty
function is_this_an_array(param) {
if (typeof param === 'object' && !isNaN(param.length)) {
console.log('Congrats, you have an array!');
}
else {
console.log('Bummer, not an array');
}
}
// Works
is_this_an_array(my_array);
// Works, but is incorrect ,
is_this_an_array(my_object);
2.이 질문 에 대답 하 는 또 다른 답 은 더욱 은밀 한 방법 으로 toString()방법 으로 이 변 수 를 그 유형 을 대표 하 는 string 으로 바 꾸 는 것 입 니 다.이 방법 은 진정한 array 에 대해 가능 합 니 다.매개 변수 대상 이 string 으로 전 환 될 때[object Argument]를 되 돌려 주면 실패 합 니 다.또한 디지털 길이 속성 을 가 진 object 클래스 도 실패 합 니 다.
 
// Real array
var my_array = [];
// Imposter! !
var my_object = {};
my_object.length = 0;
// Rock solid ( )
function is_this_an_array(param) {
if (Object.prototype.toString.call(param) === '[object Array]') {
console.log('Congrats, you have an array!');
}
else {
console.log('Bummer, not an array');
}
}
// Works
is_this_an_array(my_array);
// Not an array, yay! (array)!
is_this_an_array(my_object);
3.그 밖 에 신뢰 할 수 없 는 다 중 프레임 워 크 DOM 환경 에서 인 스 턴 스 of 는 완벽 하고 적합 한 조작 입 니 다.확장 읽 기:"Instanceof Considered Harmful..."http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray
 
var my_array = [];
if (my_array instanceof Array) {
console.log('Congrats, you have an array!');
}
4.Javascript 1.8.5(ECMAScript 5)에 대해 변수 이름.isArray()는 이 목적 을 실현 할 수 있 습 니 다.https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/isArray
 
var my_array = [];
if (Array.isArray(my_array)) {
console.log('Congrats, you have an array!');
}

좋은 웹페이지 즐겨찾기