[TIL/모던 자바스크립트 Deep Dive] 2023/07/24
27장. 배열 🟢 27-5. 배열 요소의 참조 🟡 배열의 요소를 참조할 때에는 대괄호 표기법을 사용한다. 대괄호 안에는 인덱스가 와야 한다. 정수로 평가되는 표현식이라면 인덱스 대신 사용할 수 있다. 인덱스는 값을 참조할 수 있다는 의미에서 객체의 프로퍼티 키와
27장. 배열 🟢
27-5. 배열 요소의 참조 🟡
배열의 요소를 참조할 때에는 대괄호 표기법을 사용한다. 대괄호 안에는 인덱스가 와야 한다. 정수로 평가되는 표현식이라면 인덱스 대신 사용할 수 있다. 인덱스는 값을 참조할 수 있다는 의미에서 객체의 프로퍼티 키와 동일한 역할을 한다.

존재하지 않는 요소에 접근하면 undefined가 반환된다.

배열은, '인덱스를 나타내는 문자열'을 프로퍼티 키로 갖는 객체다. 따라서 객체와 동일하게, 존재하지 않는 요소를 참조할 경우 undefined를 반환하게 되는 것이다. 마찬가지로 희소 배열의 존재하지 않는 요소를 참조해도 undefined가 반환된다.

27-6. 배열 요소의 추가와 갱신 🟡
객체에 프로퍼티를 동적으로 추가할 수 있는 것처럼, 배열에도 요소를 동적으로 추가할 수 있다. 존재하지 않는 인덱스를 사용해 값을 할당하면 새로운 요소가 추가된다. length 프로퍼티의 값은 자동적으로 갱신된다.

현재 배열의 length 프로퍼티 값보다 큰 인덱스로 새로운 요소를 추가하면 희소 배열이 된다. 다만, 인덱스로 요소에 접근하여 명시적으로 값을 할당하지 않은 요소는 생성되지 않는다.

인덱스는 요소의 위치를 나타낸다. 따라서 반드시 0이상의 정수(또는 정수 형태의 문자열)를 사용해야 한다. 정수 이외의 값을 인덱스처럼 사용하면 요소가 아닌 '프로퍼티'가 생성되고, 이때 추가된 프로퍼티는 length 프로퍼티 값에 영향을 주지 않는다. 다음과 같다.

27-7. 배열 요소의 삭제 🟡
배열은 실상 객체이기에, 배열의 특정 요소를 삭제하기 위해 delete 연산자를 사용할 수 있다.

배열에서 특정 요소가 삭제되었는데 희소 배열이 되며 length 프로퍼티의 값이 변하지 않는 현상은, 코드의 예측 가능성을 저하시킨다. 따라서 희소 배열을 만드는 delete 연산자를 사용하는 것은 지양하는 것이 좋다. 대신 Array.prototype.splice 메서드를 사용하도록 하자.

More to read
Amazon VPC Architecture 이해하기
새로운 프로젝트를 기획하며, 개발에서 무엇을 가장 먼저 고민해야 하는지 다시 돌아보게 되었습니다.한때는 프론트엔드가 모든 설계의 출발점이라고 믿었습니다. 유저가 무엇을 보고, 어떤 흐름에서 머무르고 이탈하는지에 대한 이해 없이 서비스를 만든다는 건 불가능하다고 생각했기
'원사이트'프론트엔드 관점으로 알고리즘 이해하기
오랜만에 방법론에 관한 글을 쓰게 되었습니다. 최근 상황은 이렇습니다. SSAFY에서는 하루에 엄청난 양의 알고리즘 문제들을 과제로 수행하게 됩니다. 그 과정에서, '구현력'이 매우 떨어진다는 생각이 들었습니다. 완전히 어려운 문제라면 '아쉬움'이라는 감정조차 느끼지
SubnetVPC 설계의 시작: IP와 Subnet
반복되는 루틴 속에서 얻은 안정감을 발판 삼아, 이제는 기술적 스펙트럼을 넓히기 위한 개인 프로젝트에 착수하고자 합니다.이번 프로젝트의 목표는 단순한 포트폴리오 구축을 넘어, 실제 서비스 수준의 블로그 시스템 구현과 다국어 처리 적용 등 실무에 가까운 역량을 한 단계