리터럴의 한 종류이자 자주 사용하는 데이터형인 배열을 다루도록 하겠습니다.
1. 배열
배열은 데이터들의 집합입니다. 변수에 여러개의 값들을 담고 싶다면 배열을 이용하면 됩니다.
배열에서 저장된 값에 순서대로 번호를 부여하는데 이를 인덱스라고하고, 그 인덱스 안에 저장되어 있는 값을 요소라고 부릅니다.
반드시 알아야하는 주의점은 인덱스는 0부터 시작한다는 점입니다. 일상생활에서는 숫자를 셀 때 1부터 세는 일이 기본적이지만 배열의 인덱스는 0~9순서대로 사용됩니다.
2. 배열의 선언과 접근
배열은 두 가지 방법으로 선언합니다.
2-1. Array객체 생성자 이용하기
let arr1 = new Array();
arr1[0] = 1;
arr1[1] = 2;
let arr2 = new Array('가','나', '다');
let arr3 = new Array(5);
arr1은 빈 배열이 생성됩니다. 빈 배열을 생성하고 배열 인덱스를 생성한 만큼의 크기를 가진 배열이 생성됩니다. [빈 배열부터 선언 후 나중에 초기화]
arr2는 인덱스가 3개이고 요소가 '가', '나', '다'로 초기화된 배열이 생성됩니다. [생성할 때 초기화]
arr3는 인덱스가 5개인 빈 배열을 생성합니다. 주의점은 인수에 숫자가 한 개 오는 경우에만 배열의 크기로 인정되고 두 개 이상일때는 arr2처럼 요소로 초기화됩니다. [크기가 지정된 빈 배열 생성]
2-2. 대괄호([ ]) 이용하기 (배열 리터럴)
let arr1 = [];
let arr2 = ['가', '나', '다'];
let arr3 = [,,,,,];
arr1은 빈 배열이 생성됩니다.
arr2는 인덱스가 3이고 '가', '나', '다'로 초기화된 배열이 생성됩니다.
arr3는 인덱스가 5인 빈 배열을 생성합니다. 이 방식에서 쉼표의 갯수가 인덱스의 수 입니다.
이렇게 배열을 선언하는데 두 가지 방법이 있긴하지만 자바스크립트에선 대괄호로 선언을 하는 배열 리터럴 방식을 권장하고 있습니다.
배열에 접근하는 방법은 다음과 같습니다.
배열명[인덱스]
let arr = ['가', '나', '다'];
console.log(arr[1]);
3. 2차원 배열
2차원 배열이란 배열의 요소로 배열을 갖는 배열을 의미합니다.
let 배열명 = [['가', '나'], ['다', '라']];
배열 내부에 배열이 존재하는 것을 2차원 배열이라고 하며 접근은 다음과 같이합니다.
let 배열명 = [['가', '나'], ['다', '라']];
배열명[0][0]; //가
배열명[0][1]; //나
배열명[1][0]; //다
배열명[1][1]; //라
자주 사용되지는 않지만 위와 같은 방식으로 3차원 이상의 배열도 선언/접근 할 수 있습니다.
하지만 자바스크립트에서 다른 언어에서 통용되는 2차원 배열(이상)이라는 것은 존재하지 않는다고 하며, let arr[][]과 같은 선언방식도 불가능합니다.
4. 자바스크립트에서의 배열
자바스크립트의 배열은 다른 언어의 배열과 차이점을 갖습니다.
4-1. 배열 요소의 데이터 타입이 다른것을 허용합니다.
다른 언어에는 없는 독특한 특징이며, 유연한 배열 선언을 허용해 주는 모습입니다. 결과를 보면 아무런 오류나 경고 없이 배열이 선언되었습니다.
let arr = ['가', 4, true];
console.log(arr);
4-2. 배열의 크기는 변경이 가능하다.
다른 언어에서는 한 번 선언된 배열의 크기는 불가능합니다. 하지만 자바스크립트에서는 동적으로 배열의 크기를 변경하는 것을 허용합니다. 배열의 크기를 변경하는데 2가지 방법이 있습니다.
- .length로 크기 변경
length는 배열의 크기를 취득하는 프로퍼티입니다.(배열 객체의 프로퍼티인 length) 이를 이용하여 길이를 직접 변경할 수 있습니다.
let arr = ['가', 4, true];
console.log(arr.length);
arr.length = 7;
console.log(arr.length);
arr.length = 3;
console.log(arr.length);
- 요소를 추가하거나 제거하여 길이 변경
배열에 요소를 추가하여 길이를 늘리는 방식입니다.
push()는 배열의 끝에 요소를 추가하는 메소드, pop()은 배열의 마지막 요소를 제거하는 메소드입니다.
let arr = ['가', 4, true];
console.log(arr.length); //3
arr[5] = '나';
console.log(arr.length); //6
console.log(arr);
arr.push('다');
console.log(arr.length); //7
console.log(arr);
arr.pop();
console.log(arr.length); //6
console.log(arr);
결과를 보면 요소 투입없이 확장된 인덱스 부분은 empty상태(indefined)인 것을 볼 수 있습니다.
'Programming > Javascript' 카테고리의 다른 글
[Javascript] 내장 객체 - String 객체 1 (0) | 2021.03.03 |
---|---|
[Javascript] 정적 프로퍼티와 정적 메소드 (0) | 2021.03.03 |
[Javascript] 객체 사용하기 (0) | 2021.03.02 |
[Javascript] 객체 (0) | 2021.02.26 |
[Javascript] 재귀 함수 (0) | 2021.02.26 |
댓글