[JQUERY] 왜 객체에 대해서 typeof 배열은 "개체"가 아닌 "배열"를 반환합니까? [복제]
JQUERY왜 객체에 대해서 typeof 배열은 "개체"가 아닌 "배열"를 반환합니까? [복제]
해결법
-
1.자바 스크립트의 이상한 행동과 사양 중 하나는과 typeof 배열이 객체이다.
자바 스크립트의 이상한 행동과 사양 중 하나는과 typeof 배열이 객체이다.
변수가 방법의 몇 배열 인 경우 확인할 수 있습니다 :
var isArr = data instanceof Array; var isArr = Array.isArray(data);
그러나 가장 신뢰할 수있는 방법은 다음과 같습니다
isArr = Object.prototype.toString.call(data) == '[object Array]';
당신이 jQuery를 사용하여 질문을 태그 때문에, 당신은 jQuery를 끝나면 IsArray 기능을 사용할 수 있습니다 :
var isArr = $.isArray(data);
-
2.사양을 인용
사양을 인용
그리고 여기에 대해서 typeof를위한 테이블의
몇 가지 배경을 추가하려면 자바 스크립트에서 두 개의 데이터 유형이있다 :
자바 스크립트의 객체는 연관 배열 / 대부분의 객체 지향 언어는 본 사전 구조가 유사하다 - 즉, 그것은 키 - 값 쌍들의 세트를 가진다.
배열은 다음과 같은 속성 / 키 객체로 간주 될 수있다 :
대해서 typeof 배열 객체를 반환 이유에서이 도움이 창고는 더 많은 빛 바랍니다. 건배!
-
3.이 예제를 시도하고 당신은 자바 스크립트에서 연관 배열과 객체 사이의 차이가도 이해합니다.
이 예제를 시도하고 당신은 자바 스크립트에서 연관 배열과 객체 사이의 차이가도 이해합니다.
연관 배열
var a = new Array(1,2,3); a['key'] = 'experiment'; Array.isArray(a);
true를 돌려줍니다
길이는 키로 취급되기 때문에 a.length이 정의되지 않습니다 것을 명심하십시오, 당신은 연관 배열의 길이를 얻을 수 Object.keys (A) .length를 사용해야합니다.
목적
var a = {1:1, 2:2, 3:3,'key':'experiment'}; Array.isArray(a)
반환 거짓
JSON는 연관 배열을 반환 할 수 ... 개체를 반환 ...하지만 그렇게하지 않습니다
-
4.코드에는 일반 JS 배열이 없습니다. 데이터는 원시 JS 객체이다. 브래킷의 다른 유형의 다른 의미의주의 :
코드에는 일반 JS 배열이 없습니다. 데이터는 원시 JS 객체이다. 브래킷의 다른 유형의 다른 의미의주의 :
var someArray = []; var someObject = {};
from https://stackoverflow.com/questions/12996871/why-does-typeof-array-with-objects-return-object-and-not-array by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] jQuery로 iframe이 새로 고침 (0) | 2020.10.13 |
---|---|
[JQUERY] (폰트 얼굴 @) 글꼴이 이미로드 된 경우 어떻게 알고? (0) | 2020.10.13 |
[JQUERY] 어떻게 자바 스크립트를 사용하여 링크를 만들려면 어떻게해야합니까? (0) | 2020.10.13 |
[JQUERY] 어떻게 페이지의 특정 요소로 이동합니다? [복제] (0) | 2020.10.13 |
[JQUERY] AngularJS와 + JQuery와 어떻게 AngularJS와에서 작업 동적 콘텐츠를 얻을 수 있습니다 (0) | 2020.10.13 |