여러 개의 값을 순서적으로 나열한 자료구조이다.
let array1 = [1, 2, 3, 4, 5];
let array2 = new Array(5);
let array3 = Array.from({length: 5}, (value, index) => index);
let array = [1, 2, 3];
console.log(array[0]) // output: 1
// 존재하지 않는 인덱스 요소 접근
console.log(array[4]) // output: undefined
let array1 = [1, 2, 3, 4, 5, 6];
array1[0] = "1";
array1[2] = "2";
colose.log(array1); //output: 1, 비어있음, 2
존재하지 않는 요소에 접근시 에러가 아닌 undefined
가 발생합니다.
또한 위에서 볼 수 있듯이 자바스크립트의 배열은 다른 언어와 다르게 연속적이지 않는 희소 배열
입니다. 그렇지만 최적화되어 있어, object 접근시 보다 빠릅니다.
배열에는 여러 메소드들은 내장하고 있는데, length
는 메소드가 아닌 프로퍼티 값입니다.
push
: 마지막에 요소 추가pop
: 마지막 요소 삭제unshift
: 맨 앞에 요소 추가shift
: 맨 앞 요소 삭제splice(start, deleteCount, item..)
: start요소 부터 deleteCount 수 만큼 삭제. item 인수를 전달한 경우 해당 위치에 item 추가하고 삭제한 요소 반환
reverse
: 원본 배열의 순서를 반전fill(value, start, end)
: 인수로 전달 받은 값으로 범위내의 요소 값을 변경sort
: 배열의 요소를 정렬. 기본 수행은 오름차순으로 수행isArray
: 배열여부 boolean값 반환indexOf
: 찾는 요소의 위치를 반환. 없는 경우 -1 반환includes
: 찾는 요소의 존재 여부 boolean값 반환concat
: 두 배열을 병합한 새로운 배열을 반환 (스프레드 문법으로 대체 가능)slice(begin, end)
: 인수로 전달된 범위내의 배열의 요소들은 반환forEach(callback)
: callback을 배열 각 요소에 대해 한 번씩 수행. delete를 통해 삭제했거나 초기화하지 않은 요소 대해서는 실행하지 않음.map(callback)
: 요소를 순회하며 callback을 실행한 반환값으로 새로운 배열을 생성하여 반환함filter(callback)
: 요소를 순회하며 callback을 실행한 결과가 참인 리스트를 새로운 배열로 생성하여 반환함reduce(callback)
: 요소를 순회하며 누산 값을 저장하며 하나의 최종 결과 값을 반환함.