TypedArray
TypedArray 객체는 밑에 깔린 이진 데이터 버퍼의 배열 같은 뷰를 기술합니다. TypedArray인 전역 속성도 눈에 직접 보이는 TypedArray 생성자도 없습니다. 대신 다양한 전역 속성이 있습니다, 그 값이 아래 나열된 특정 요소 유형에 대한 형식화 배열 생성자인. 다음 페이지에서 각 유형 요소를 포함하는 모든 형식화 배열에 쓰일 수 있는 공통 속성 및 메서드를 찾을 수 있습니다.
구문
new TypedArray(length); new TypedArray(typedArray); new TypedArray(object); new TypedArray(buffer [, byteOffset [, length]]); TypedArray()는 다음 중 하나입니다: Int8Array(); Uint8Array(); Uint8ClampedArray(); Int16Array(); Uint16Array(); Int32Array(); Uint32Array(); Float32Array(); Float64Array();
매개변수
- length
length인수와 함께 호출하면 메모리상에 길이에 BYTES_PER_ELEMENT bytes(바이트)를 곱한 크기만큼의, 0을 포함한 이진 데이터 버퍼를 생성합니다.- typedArray
typedArray인수와 함께 호출하면, 모든 형식화 배열 객체 유형(가령Int32Array)이 될 수 있는,typedArray는 새로운 형식화 배열로 복사됩니다.typedArray내 각 값은 새로운 배열로 복사되기 전에 해당 유형의 생성자로 변환됩니다.- object
object인수와 함께 호출하면, 새로운 형식화 배열이 마치TypedArray.from()메서드에 의해서처럼 생성됩니다.- buffer, byteOffset, length
buffer와 선택 사항으로byteOffset및length인수와 함께 호출하면, 새로운 형식화 배열 뷰는 지정된ArrayBuffer뷰로 생성됩니다.byteOffset및length매개변수는 형식화 배열 뷰에 의해 노출되는 메모리 범위를 지정합니다. 둘 다 생략된 경우,buffer가 모두 보입니다;length만 생략된 경우,buffer의 나머지가 보입니다.
설명
ECMAScript 6는 모든 TypedArray 생성자의 [[Prototype]] 역할을 하는 TypedArray 생성자를 정의합니다. 이 생성자는 직접 노출되지 않습니다: 전역 %TypedArray% 또는 TypedArray 속성은 없습니다. Object.getPrototypeOf(Int8Array.prototype) 및 비슷한 방식을 통해서만 직접 접근할 수 있습니다. 모든 TypedArray 생성자는 %TypedArray% 생성자 함수로부터 공통 속성을 상속합니다. 게다가, 모든 형식화 배열 프로토타입(TypedArray.prototype)은 자기 [[Prototype]]으로서 %TypedArray%.prototype이 있습니다.
%TypedArray% 생성자 자체로는 특별히 유용한 것은 아닙니다. 호출하거나 new 식으로 사용하면 TypeError가 발생합니다, 서브클래싱을 지원하는 JS 엔진에서 객체 생성 도중 사용될 때 빼고는. 현재로서는 그러한 엔진이 없기에 %TypedArray%는 모든 TypedArray 생성자에 함수 또는 속성을 폴리필할 때만 유용합니다.
속성 접근
표준 배열 인덱스 구문(즉, 각괄호 표기법)을 써서 배열의 요소를 참조할 수 있습니다. 그러나, 형식화 배열에 인덱스 있는 속성의 읽기(getting) 또는 쓰기(setting)는 이 속성에 대한 프로토타입 체인에서 찾을 수 없습니다, 심지어 인덱스가 범위 밖인 경우라도. 인덱스 있는 속성은 ArrayBuffer를 조사하고 객체 속성을 조사하지는 않습니다. 여전히 유명 속성을 사용할 수 있습니다, 모든 객체와 마찬가지로.
// 표준 배열 구문을 사용해 쓰기 및 읽기
var int16 = new Int16Array(2);
int16[0] = 42;
console.log(int16[0]); // 42
// 프로토타입의 인덱스 있는 속성은 조사되지 않음 (Fx 25)
Int8Array.prototype[20] = "foo";
(new Int8Array(32))[20]; // 0
// 비록 범위 밖 또는
Int8Array.prototype[20] = "foo";
(new Int8Array(8))[20]; // undefined
// 음의 정수인 경우에도
Int8Array.prototype[-1] = "foo";
(new Int8Array(8))[-1]; // undefined
// 유명(named) 속성은 허용됨, 다만 (Fx 30) 에서지만
Int8Array.prototype.foo = "bar";
(new Int8Array(32)).foo; // "bar"TypedArray 객체
| 유형 | 크기 (바이트) | 설명 | Web IDL 형 | 해당 C 형 |
Int8Array |
1 | 8비트 2의 보수 형식 부호 있는 정수 | byte |
int8_t |
Uint8Array |
1 | 8비트 부호 없는 정수 | octet |
uint8_t |
Uint8ClampedArray |
1 | 8비트 부호 없는 정수 (단속됨) | octet |
uint8_t |
Int16Array |
2 | 16비트 2의 보수 형식 부호 있는 정수 | short |
int16_t |
Uint16Array |
2 | 16비트 부호 없는 정수 | unsigned short |
uint16_t |
Int32Array |
4 | 32비트 2의 보수 형식 부호 있는 정수 | long |
int32_t |
Uint32Array |
4 | 32비트 부호 없는 정수 | unsigned long |
uint32_t |
Float32Array |
4 | 32비트 IEEE 부동 소수점 수 | unrestricted float |
float |
Float64Array |
8 | 64비트 IEEE 부동 소수점 수 | unrestricted double |
double |
속성
TypedArray.BYTES_PER_ELEMENT- 서로 다른 형식화 배열 객체에 대해 요소 크기의 숫자값을 반환합니다.
- TypedArray.length
- 값이 3인 길이 속성.
TypedArray.name- 생성자 이름의 문자열 값을 반환합니다. 가령 "Int8Array".
get TypedArray[@@species](en-US)- 파생된 객체를 생성하는데 쓰이는 생성자 함수.
TypedArray.prototype(en-US)- TypedArray 객체에 대한 프로토타입.
메서드
TypedArray.from()(en-US)- 배열 같은 또는 반복가능(iterable) 객체로부터 새로운 형식화 배열을 생성합니다.
Array.from()도 참조. TypedArray.of()- 가변(variable) 인수로 새로운 형식화 배열을 생성합니다.
Array.of()도 참조.
TypedArray 프로토타입
모든 TypedArray는 TypedArray.prototype (en-US)을 상속합니다.
속성
{{page('ko/Web/JavaScript/Reference/Global_Objects/TypedArray/prototype','속성')}}
메서드
{{page('ko/Web/JavaScript/Reference/Global_Objects/TypedArray/prototype','메서드')}}
명세
| Specification |
|---|
| ECMAScript Language Specification (ECMAScript) # sec-typedarray-objects |
브라우저 호환성
BCD tables only load in the browser