자바스크립트 배열은 일반적 의미의 배열과 다르다.
각각의 메모리 공간은 동일한 크기를 갖지 않아도 되며,연속적으로 이어져 있지 않을 수 도 있다.
이러한 연속적으로 이어저 있지 않은 배열을 희소배열이라 한다.
자바스크립트 배열은 배열을 인덱스로 접근 할 경우의 성능 보다, 특정 요소를 탐색하거나 배열 요소를 삽입 또는 삭제하는 경우를 우선적으로 배려하여 설계한것이다.
희소 배열을 사용하는 이유는 메모리 절약을 위해서다 .일반적인 배열은 일단 공간을 할당하지만 , 희소배열의 경우 값을 할당하지 않은 공간은 메모리할당을 하지 않기 때문이다.
일반적인 배열의 length는 배열의 요소의 개수와 일치 하지만, 희소배열은 일치하지 않을 수 있다.
var arr = [];
arr[0] = '첫 번째 요소';
arr[100] = '백 번째 요소';
console.log(arr.length); // 101
console.log(arr[50]); // undefined
배열의 생성
객체와 마찬가지로, 새로운 배열을 배열 변수의 배열을 덮어씌우는 경우는 많지 않으므로, 배열 변수 선언시 const 를 많이 사용한다.
const가 붙었기 때문에 한번 정의된 수는 재정의 할수 없다.
하지만, 상수 배열의 특징은 한번 정의된 것은 재정의 할 수는 없지만,요소는 변경할 수 있다.
const array = [1, 2, 'lee' , 100];
console.log(array);
const array = [1, 2, 'Hello' , 100];
console.log(array .length);