배열 이상: 속성 대 요소
JavaScript에서 객체의 다양성은 배열에서도 확장됩니다. 이 이상한 현상은 배열이 객체 프로토타입에서 상속된다는 사실에서 발생합니다. 결과적으로 배열은 객체인 것처럼 조작될 수 있습니다.
배열의 속성 할당
다음 코드 조각을 고려하세요.
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin";
및
var myObject = {'A': 'Athens', 'B':'Berlin'};
이러한 코드 조각은 다음과 동일하게 나타납니다. 둘 다 명명된 속성을 가진 개체를 만듭니다. 그러나 이들 사이에는 근본적인 차이점이 있습니다.
재산 남용의 함정
배열은 객체로 취급될 수 있지만 배열의 기본 목적은 객체라는 점에 유의하는 것이 중요합니다. 숫자로 색인된 데이터의 경우. 숫자가 아닌 키를 배열에 할당하면 예기치 않은 동작이 발생할 수 있습니다.
예를 들어 다음을 고려하세요.
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin"; alert(myArray.length);
'2'(예상 요소 수)를 표시하는 대신, 경고에 '0'이 표시됩니다. 이는 숫자가 아닌 키('A' 및 'B')가 숫자로 인덱스된 요소의 수를 추적하는 배열의 길이 속성을 증가시키지 않기 때문입니다.
결론적으로 추가하는 것이 편리해 보일 수 있지만 명명된 속성을 배열에 추가하는 경우 이러한 방식은 배열의 목적을 훼손하고 예상치 못한 동작을 초래할 수 있으므로 피해야 합니다. 숫자가 아닌 키의 경우 대신 순수 객체를 사용하는 것이 좋습니다.
위 내용은 속성 할당은 JavaScript 배열 길이에 어떤 영향을 줍니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!