[JS] 자바스크립트의 배열(Array)은 배열이 아니다.
·
Learning-Log/Computer Science
arr['a'] = 1; 위 코드가 먹힌다는 사실이 제목을 설명해준다. 자바스크립트의 배열은 엄밀히 말해서 배열이 아니다. 바로 객체이다. 아주아주 엄밀히 말하자면, 'JS의 배열은 희소 배열이기 때문에, 일반적으로 의미하는 밀집 배열이 아니다' 라고 말할 수 있겠다. 밀집 배열(협의의 배열)이란, 메모리 공간이 동일한 한 가지 자료형으로만 구성되어 자료가 서로 연속하여 나열된 자료구조이다. 희소 배열(광의의 배열)이란, 하나 이상의 자료형을 허락하는 배열이여서 한 자료가 차지하는 메모리 공간이 불규칙할 수 있고, 그 때문에 서로 연속적으로 나열되어 있지 않을 수도 있는 자료구조이다. 여담이지만, JS 배열은 희소 배열이기 때문에 배열 요소를 인덱스로 접근하려는 경우 밀집 배열인 다른 언어에 비해 상대적..
[JS/Array] 배열 Method 및 배열 고차 함수 정리
·
Learning-Log/Computer Science
분류 mutator : 호출한 원본 배열을 직접 변경함 accessor : 원본 배열을 직접 변경하지 않고 새로운 배열을 반환함. 배열 Method Array.prototype 분류 내용 반환값 비고 .indexOf accessor 인수가 몇 번째 순서인지 검색 첫 번째 검색 일치 결과의 인덱스를 반환 검색 불일치시 -1 을 반환 인수의 존재확인시에는 includes를 쓸 것 .push mutator 인수를 마지막 요소로 추가 length 속성 값을 반환 하나만 추가한다면 arr[arr.length]로 직접 추가하자 mutate가 싫다면 스프레드 문법을 쓸 것 .pop mutator 마지막 요소를 제거 제거한 요소를 반환 .unshift mutator 인수를 첫 요소로 추가 length 속성 값을 반환 ..