반응형
자바 스크립트에서 배열(Array)은 이름과 인덱스로 참조되는 정렬된 값의 집합이다.
보통 각각의 값을 배열 요소(element)라고 하며, 위치는 인덱스(index)라고 한다. 코드에서 배열은 무척이나 중요하다고
생각되는데, 일반적으로 여러 값을 포함시킬 수 있기 때문이다.
자바 스크립트에서 배열의 특징은 여러가지가 있는데
- 배열 요소의 타입이 고정되어 있지 않으므로, 같은 배열에 있는 배열 요소끼리의 타입이 서로 다를 수 있다.
- element의 index가 연속적이지 않아도 되며, element가 비어 있을 수 있다.
- 배열은 Array 객체로 다뤄진다.
제일먼저 자바 스크립트에서 배열을 만드는 방법은 여러가지가 존재한다.
var arr = [요소1,요소2]; // 배열 리터럴 이용
var ArrLit = [1,true,"JS"];
var arr = Array(요소1,요소2); // Array 객체의 생성자 이용
var arrObj = Array(1,true,"JS");
var arr = new Array(요소1,요소2); // new 연산자를 이용
var arrNewObj = new Array(1,true,"JS");
console.log(ArrLit);
console.log(arrObj);
console.log(arrNewObj);
이런식으로 작성하게 되면 요소에 맞는 값들이 나온다.
배열의 참조는
[]연산자를 이용하여 괄호 안에 인덱스 번호를 넣어준다. 또한 자바 스크립트의 인덱스에서는 항상 0부터 시작한다.
// 요소가 하나뿐인 배열을 생성함.
var arr = ["JavaScript"];
// 배열의 첫 번째 요소를 읽어서 대입함.
var element = arr[0];
// 배열의 두 번째 요소에 숫자 10을 대입함. 배열의 길이는 1에서 2로 늘어남.
arr[1] = 10;
// 배열의 세 번째 요소에 변수 element의 값을 대입함. 배열의 길이는 2에서 3으로 늘어남.
arr[2] = element;
// 배열의 요소를 모두 출력함.
console.log("배열 arr의 요소에는 [" + arr + "]가 있습니다.<br>");
// 배열의 길이를 출력함.
console.log("배열 arr의 길이는 " + arr.length + "입니다.<br>");
// 배열의 세 번째 요소를 삭제함. 하지만 배열의 길이는 변하지 않음.
delete arr[2];
// 배열의 요소를 모두 출력함.
console.log("배열 arr의 요소에는 [" + arr + "]가 있습니다.<br>");
// 배열의 길이를 출력함.
console.log("배열 arr의 길이는 " + arr.length + "입니다.");
항상 우리가 선언해놓은 배열만 사용하는 것이 아니라
중간에 요소를 추가할 수도 있는데,
보통은 push()메서드나 length를 사용하는데,
두 방법 모두 배열의 제일 끝에 새로운 요소를 추가한다.
var arr = [1, true, "Java"];
arr.push("Script"); // push() 메소드를 이용하는 방법
console.log(arr + "<br>"); // 1,true,Java,Script
arr[arr.length] = 100; // length 프로퍼티를 이용하는 방법
console.log(arr + "<br>"); // 1,true,Java,Script,100
arr[10] = "자바스크립트"; // 특정 인덱스를 지정하여 추가하는 방법
console.log(arr + "<br>"); // 1,true,Java,Script,100,,,,,,자바스크립트
console.log(arr[7]); // undefined
다른 코드와 비슷하게
순차적으로 배열 모든 요소에 접근하려면
반복문을 사용하여 접근하면 가능하다.
var arr = [1, true, "JavaScript"];
var result = "<table><tr>";
for (var idx in arr) {
result += "<td>" + arr[idx] + "</td>";
}
result += "</tr></table>";
console.log(result);
* 여러가지의 타입이 같은 배열안에 존재할 수 있으므로 typeof를 사용했을떄 그 인덱스에 맞는 타입이 나타나게 된다.
TCP SCHOOL.com 참고
반응형