JScript Array 개체
Array 개체는 관련된 데이터들을 하나의 변수로 모은 인덱스 또는 첨자라 불리는 고유 번호를 사용하여 배열내의 각 데이터를 참조합니다. 배열에 저장된 데이터에 액세스하려면 theMonths[0]과 같이 배열 식별자와 인덱스를 인덱스 연산자 "[]"를 사용하여 결합한 형태를 사용합니다.
배열 만들기
새로운 배열을 만들려면 new 연산자와 Array 생성자를 사용합니다. 다음 예제에서는 배열 생성자를 사용하여 길이가 12인 배열을 생성한 다음 그 배열에 데이터를 입력합니다.
var theMonths = new Array(12);
theMonths[0] = "Jan";
theMonths[1] = "Feb";
theMonths[2] = "Mar";
theMonths[3] = "Apr";
theMonths[4] = "May";
theMonths[5] = "Jun";
theMonths[6] = "Jul";
theMonths[7] = "Aug";
theMonths[8] = "Sep";
theMonths[9] = "Oct";
theMonths[10] = "Nov";
theMonths[11] = "Dec";
Array 키워드를 사용하여 배열을 만들면 JScript에 항목의 숫자를 기록하는 length 속성이 포함됩니다. 숫자를 지정하지 않으면 길이는 0으로 설정되고 배열은 항목을 갖지 않습니다. 숫자를 지정하면 길이는 지정한 숫자로 설정됩니다. 매개 변수를 둘 이상 지정하면 이 매개 변수들은 배열의 항목으로 사용됩니다. 또한 다음 예제에서처럼 매개 변수의 숫자는 length 속성에 할당됩니다. 이 예제는 앞의 예제와 같습니다.
var theMonths = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
배열에 데이터를 입력하는 또 하나의 방법은 배열 리터럴을 사용하는 것입니다. 자세한 내용은 배열 데이터를 참조하십시오.
Array 개체는 밀도가 낮은 배열을 저장합니다. 즉, 번호가 0, 1 및 2인 세 개의 요소가 있는 배열인 경우 3에서 49 사이의 요소가 없어도 50번 요소가 존재할 수 있습니다. JScript에서는 Array 개체에 요소를 추가할 때 length 속성의 값을 자동으로 변경합니다. JScript의 배열 인덱스는 항상 1이 아닌 0부터 시작하므로 length 속성은 배열에서 가장 큰 인덱스보다 항상 1이 큽니다.
배열의 expando 속성 사용
배열 개체는 JScript Object 개체를 기반으로 하는 다른 개체와 마찬가지로 expando 속성을 지원합니다. Expando 속성은 배열 인덱스처럼 배열에 동적으로 추가하고 삭제하는 새로운 속성입니다. 그러나 정수이어야 하는 배열 인덱스와는 달리 expando 속성은 문자열입니다. 또한 expando 속성을 추가하거나 삭제해도 length 속성은 변경되지 않습니다.
예를 들면 다음과 같습니다.
// Initialize an array with three elements.
var myArray = new Array("Hello", 42, new Date(2000,1,1));
print(myArray.length); // Prints 3.
// Add some expando properties. They will not change the length.
myArray.expando = "JScript";
myArray["another Expando"] = "Windows";
print(myArray.length); // Still prints 3.
형식화된 배열
위 예제의 theMonths 배열을 더 빨리 만드는 방법은 형식화된 네이티브 배열을 만드는 것입니다. 이 경우에는 문자열 배열로 다음과 같습니다.
var theMonths : String[] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
형식화된 배열의 요소는 JScript 배열 개체의 요소보다 빠르게 액세스할 수 있습니다. 형식화된 배열은 다른 .NET Framework 언어의 배열과 호환될 수 있으며 형식 안전성을 제공합니다.
JScript Arrays 개체는 융통성이 매우 커서 목록, 큐, 스택 등에 사용하기 좋지만, 크기가 고정된 동일한 형식의 항목을 저장하는 데는 네이티브 배열을 사용하는 것이 훨씬 좋습니다. 일반적으로 동적 크기 조정과 같은 Array 개체의 특수 기능이 필요한 경우 외에는 형식화된 배열을 사용해야 합니다.
길이를 변경시키지 않는 모든 비파괴적 JScript Array 메서드는 형식화된 배열에서 호출될 수 있습니다.