배열 개요
업데이트: 2007년 11월
배열은 한 변수에 두 개 이상의 데이터를 포함합니다. 1차원 배열에서는 하나의 인덱스 번호, 배열의 배열이나 다차원 배열에서는 여러 개의 인덱스 번호를 사용하여 배열에 있는 데이터를 참조합니다. 배열의 각 요소는 배열 식별자 뒤에 대괄호([]) 안에 표기된 배열 인덱스를 사용하여 참조할 수 있습니다. 배열 전체를 참조하는 경우에는 배열 식별자만 사용합니다. 배열을 사용하여 데이터를 모으면 데이터를 관리하기가 쉽습니다. 예를 들어, 메서드에서 배열을 사용하면 하나의 매개 변수만 사용하여 이름 목록을 함수로 전달할 수 있습니다.
JScript에는 JScript 배열과 형식화된 배열 등 두 가지 형식의 배열이 있습니다. 이 두 가지 배열 형식은 서로 비슷하지만 몇 가지 다른 점이 있습니다. JScript 배열과 형식화된 배열은 상호 운용이 가능합니다. 따라서, JScript Array 개체는 형식화된 배열의 메서드와 속성을 호출할 수 있으며, 형식화된 배열은 Array 개체의 여러 메서드와 속성을 호출할 수 있습니다. 또한 형식화된 배열을 받아들이는 함수는 Array 개체를 받아들이고 그 반대의 경우도 마찬가지입니다. 자세한 내용은 Array 개체를 참조하십시오.
형식화된 배열
형식화된 배열(네이티브 배열이라고도 함)은 C, C++ 등의 언어에서 사용하는 배열과 비슷합니다. 형식화된 배열은 배열 형식 선언에 지정한 형식과 일치하는 데이터만 저장함으로써 형식 안전성을 제공합니다.
참고: |
---|
Object 형식의 형식화된 배열을 정의하면 모든 형식의 데이터를 저장할 수 있습니다. |
스크립트는 배열을 만들거나 초기화할 때 형식화된 배열의 요소 수를 설정합니다. 요소의 수를 변경하려면 배열을 다시 만들어야 합니다. n개의 요소로 만들어진 형식화된 배열은 0부터 n-1까지 번호가 붙은 요소를 가지며 이 범위 밖의 요소에 액세스하려고 하면 오류가 발생합니다. 또한 형식화된 배열은 밀도가 높습니다. 즉, 허용 범위에 있는 모든 인덱스는 각각 한 요소를 참조합니다.
스크립트는 선언되고 형식화된 배열을 변수 또는 상수에 할당하거나 함수, 연산자 또는 문에 전달할 수 있습니다. 변수나 상수에 할당할 때 변수나 상수의 데이터 형식이 배열의 형식과 일치해야 하며 배열의 차원 또한 일치해야 합니다.
형식화된 배열은 .NET Framework System.Array 개체의 인스턴스입니다. System.Array 개체의 정적 멤버에 액세스하거나 System.Array 개체를 명시적으로 만들려면 정규화된 이름인 System.Array가 필요한데, 이 구문을 사용하여 내장 JScript 개체인 Array와 구별할 수 있습니다.
JScript 배열
형식화된 배열보다 유연성을 제공하는 JScript Array 개체는 일반 스택이나 항목 리스트가 필요하거나 성능을 최우선으로 고려하지 않아도 되는 경우에 편리합니다. 그러나, 형식화된 배열은 형식 안전성과 향상된 성능은 물론 다른 언어와의 보다 나은 상호 작용을 제공하므로, 개발자는 일반적으로 JScript 배열 대신 형식화된 배열을 선택합니다.
JScript 배열은 어떠한 형식의 데이터나 저장할 수 있으므로 형식 충돌에 대한 염려 없이 배열을 사용하는 스크립트를 빨리 작성할 수 있습니다. 이 기능을 사용할 때는 JScript에서 제공하는 엄격한 형식 검사가 이루어지지 않으므로 주의하여 사용합니다.
스크립트는 JScript 배열에 요소를 동적으로 추가하거나 제거할 수 있습니다. 배열 요소를 추가하려면 요소에 값을 할당합니다. delete 연산자를 사용하여 요소를 제거할 수 있습니다.
JScript 배열은 밀도가 낮습니다. 즉, 배열에 0, 1 및 2번의 세 요소가 있으면 3번에서 49번 요소 없이도 50번 요소가 존재할 수 있습니다. 각 JScript 배열은 요소가 추가될 때 자동으로 업데이트되는 length 속성을 가집니다. 앞의 예제에서 50번 요소를 추가하면 length 변수의 값은 4가 아니라 51이 됩니다.
JScript Array 개체와 JScript Object는 거의 동일합니다. 두 가지 주된 차이점으로, Object에는 기본적으로 자동 length 속성이 포함되지 않으며, JScript Object에는 Array의 속성과 메서드가 포함되지 않습니다. 자세한 내용은 JScript Array 개체를 참조하십시오.