배열은 객체지만 인덱스와 요소로 이뤄진 독특한 구조
어떤 타입의 값이라도 배열의 요소가 될수 있음
자료구조에서 말하는 배열은 아니고 희소 배열(요소가 연속적으로 갖지 않음)임
자바스크립트 배열은 배열을 흉내낸 특수한 객체임
자바스크립트 배열은 해시 테이블(key,value로 데이터를 저장하는 구조로 빠르게 데이터 검색 가능 , 참고 사이트)로 구현된 객체이기 때문에, 하나 하나의 요소에 접근은 빠르나 삭제/추가가 느림
강의 예제 1
const a = [];
a.length = 10;
a // *[empty X 10]*
a[5]; // undefined
강의 예제 2
new Array(10); // 비어있음 *[empty X 10]
//* 비어있기 때문에 forEach문 실행이 안됨
new Array(10).forEach((v, i) => console.log(v, i)); // undefined
// 하나라도 값을 넣어주면 forEach문 돌릴수 있음
const a = new Array(10);
a[5] = undfined;
a.forEach((v, i) => console.log(v, i)); // undefined, 5
const arr = [1,2,3];
const a = new Array(3);
// 인자에 들어간 갯수가 몇개인지, 어떤게 들어가 있는지에 따라 동작이 다름~~
new Array(100); // *[empty X 100] 요소 100개가 비어있는 배열이 됨*
new Array(100,1,2); // [100, 1, 2]
new Array({}); // [{}]