MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

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 인수와 함께 호출하면, length 0을 포함하는 형식화 배열이 생성됩니다.
typedArray
typedArray 인수와 함께 호출하면, 모든 형식화 배열 객체 유형(가령 Int32Array)이 될 수 있는, typedArray는 새로운 형식화 배열로 복사됩니다. typedArray 내 각 값은 새로운 배열로 복사되기 전에 해당 유형의 생성자로 변환됩니다.
object
object 인수와 함께 호출하면, 새로운 형식화 배열이 마치 TypedArray.from() 메서드에 의해서처럼 생성됩니다.
buffer, byteOffset, length
buffer와 선택 사항으로 byteOffsetlength 인수와 함께 호출하면, 새로운 형식화 배열 뷰는 지정된 ArrayBuffer 뷰로 생성됩니다. byteOffsetlength 매개변수는 형식화 배열 뷰에 의해 노출되는 메모리 범위를 지정합니다. 둘 다 생략된 경우, 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]
파생된 객체를 생성하는데 쓰이는 생성자 함수.
TypedArray.prototype
TypedArray 객체에 대한 프로토타입.

메서드

TypedArray.from()
배열 같은 또는 반복가능(iterable) 객체로부터 새로운 형식화 배열을 생성합니다. Array.from()도 참조.
TypedArray.of()
가변(variable) 인수로 새로운 형식화 배열을 생성합니다. Array.of()도 참조.

TypedArray 프로토타입

모든 TypedArrayTypedArray.prototype을 상속합니다.

속성

TypedArray.prototype.constructor
인스턴스의 프로토타입을 만든 함수를 반환합니다. 이는 기본으로 해당 TypedArray 객체 유형 함수 중 하나입니다.
TypedArray.prototype.buffer Read only
형식화 배열에 의해 참조되는 ArrayBuffer를 반환합니다. 생성 시에 고정되기에 읽기 전용.
TypedArray.prototype.byteLength Read only
ArrayBuffer의 시작점부터 형식화 배열의 길이(단위 바이트)를 반환합니다. 생성 시에 고정되기에 읽기 전용.
TypedArray.prototype.byteOffset Read only
ArrayBuffer의 시작점부터 형식화 배열의 오프셋(단위 바이트)을 반환합니다. 생성 시에 고정되기에 읽기 전용.
TypedArray.prototype.length Read only
형식화 배열 내 보유한 요소의 수를 반환합니다. 생성 시에 고정되기에 읽기 전용.

메서드

TypedArray.prototype.copyWithin()
배열 내부 일련의 배열 요소를 복사합니다. Array.prototype.copyWithin()도 참조.
TypedArray.prototype.entries()
배열 내 각 인덱스에 대한 키/값 쌍을 포함하는 새로운 Array Iterator 객체를 반환합니다. Array.prototype.entries()도 참조.
TypedArray.prototype.every()
배열의 모든 요소가 함수로 제공되는 테스트를 통과하는지를 테스트합니다. Array.prototype.every()도 참조.
TypedArray.prototype.fill()
시작 인덱스부터 끝 인덱스까지 배열의 모든 요소를 고정값으로 채웁니다. Array.prototype.fill()도 참조.
TypedArray.prototype.filter()
제공되는 필터링 함수가 true를 반환하는 이 배열의 모든 요소를 갖는 새로운 배열을 생성합니다. Array.prototype.filter()도 참조.
TypedArray.prototype.find()
배열 내 요소가 제공되는 테스트 함수를 만족하는 경우 배열 내 찾은 값 또는 못 찾은 경우 undefined를 반환합니다. Array.prototype.find()도 참조.
TypedArray.prototype.findIndex()
배열 내 요소가 제공되는 테스트 함수를 만족하는 경우 배열 내 찾은 인덱스 또는 못 찾은 경우 -1을 반환합니다. Array.prototype.findIndex()도 참조.
TypedArray.prototype.forEach()
배열 내 각 요소에 대해 함수를 호출합니다. Array.prototype.forEach()도 참조.
TypedArray.prototype.includes()
형식화 배열이 특정 요소를 포함하는지를 판단해, 적절히 true 또는 false를 반환합니다. Array.prototype.includes()도 참조.
TypedArray.prototype.indexOf()
지정된 값과 같은 배열 내부 요소의 첫(최소) 인덱스 또는 못 찾은 경우 -1을 반환합니다. Array.prototype.indexOf()도 참조.
TypedArray.prototype.join()
배열의 모든 요소를 문자열로 합칩니다. Array.prototype.join()도 참조.
TypedArray.prototype.keys()
배열의 각 인덱스에 대한 키를 포함하는 새로운 Array Iterator를 반환합니다. Array.prototype.keys()도 참조.
TypedArray.prototype.lastIndexOf()
지정된 값과 같은 배열 내부 요소의 끝(최대) 인덱스 또는 못 찾은 경우 -1을 반환합니다. Array.prototype.lastIndexOf()도 참조.
TypedArray.prototype.map()
이 배열의 모든 요소에 제공된 함수를 호출한 결과를 갖는 새로운 배열을 생성합니다. Array.prototype.map()도 참조.
TypedArray.prototype.move() Unimplemented
TypedArray.prototype.copyWithin()의 이전 비표준 버전.
TypedArray.prototype.reduce()
누산기(accumulator) 및 배열의 각 값(좌에서 우로)에 대해 한 값으로 줄도록 함수를 적용합니다. Array.prototype.reduce()도 참조.
TypedArray.prototype.reduceRight()
누산기 및 배열의 각 값(우에서 좌로)에 대해 한 값으로 줄도록 함수를 적용합니다. Array.prototype.reduceRight()도 참조.
TypedArray.prototype.reverse()
배열 요소의 순서를 뒤집습니다 — 처음이 마지막이 되고 마지막이 처음이 됩니다. Array.prototype.reverse()도 참조.
TypedArray.prototype.set()
형식화 배열에 여러 값을 저장합니다, 지정된 배열에서 입력 값을 읽어.
TypedArray.prototype.slice()
배열의 한 부분을 추출하여 새로운 배열을 반환합니다. Array.prototype.slice()도 참조.
TypedArray.prototype.some()
이 배열의 적어도 한 요소가 제공된 테스트 함수를 만족하는 경우 true를 반환합니다. Array.prototype.some()도 참조.
TypedArray.prototype.sort()
배열의 요소를 적소에 정렬해 그 배열을 반환합니다. Array.prototype.sort()도 참조.
TypedArray.prototype.subarray()
주어진 시작 및 끝 요소 인덱스로부터 새로운 TypedArray를 반환합니다.
TypedArray.prototype.values()
배열의 각 인덱스에 대한 값을 포함하는 새로운 Array Iterator 객체를 반환합니다. Array.prototype.values()도 참조.
TypedArray.prototype.toLocaleString()
배열 및 그 요소를 나타내는 지역화된 문자열을 반환합니다. Array.prototype.toLocaleString()도 참조.
TypedArray.prototype.toString()
배열 및 그 요소를 나타내는 문자열을 반환합니다. Array.prototype.toString()도 참조.
TypedArray.prototype[@@iterator]()
배열의 각 인덱스에 대한 값을 포함하는 새로운 Array Iterator 객체를 반환합니다.

스펙

스펙 상태 설명
Typed Array Specification Obsolete 형식화 배열 뷰 유형이 있는 TypedArrayArrayBufferView 인터페이스로 정의됨. ECMAScript 6로 대체됨.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'TypedArray Objects' in that specification.
Standard ECMA 표준에서 초기 정의. 인덱스 있고 유명 속성에 대한 행동이 지정됨. new가 필요함이 지정됨.
ECMAScript 2017 Draft (ECMA-262)
The definition of 'TypedArray Objects' in that specification.
Draft  

브라우저 호환성

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 7.0 4.0 (2) 10 11.6 5.1
Indexed properties not consulting prototype (Yes) [1] 25 (25) ? ? ?
Named properties (Yes) 30 (30) ? ? ?
new is required ? 44 (44) ? ? ?
Feature Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support 4.0 (Yes) 4.0 (2) 10 11.6 4.2 (Yes)
Indexed properties not consulting prototype ? (Yes) [1] 25.0 (25) ? ? ? (Yes) [1]
Named properties ? (Yes) 30.0 (30) ? ? ? ?
new is required ? ? 44.0 (44) ? ? ? ?

[1] -1과 비슷한 값은 인덱스 있는 속성으로 여겨지지 않기에 그 프로토타입 속성값을 반환합니다.

호환성 주의사항

ECMAScript 2015 (ES6)를 시작으로, TypedArray 생성자는 new 연산자로 생성되어야 합니다. new 없는 함수로서 TypedArray 생성자를 호출하면, 이제부터 TypeError가 발생합니다.

var dv = Int8Array([1, 2, 3]);
// TypeError: new 없은 내장 Int8Array 생성자
// 호출은 금지됩니다
var dv = new Int8Array([1, 2, 3]);

참조

문서 태그 및 공헌자

 이 페이지의 공헌자: Netaras, Khai96_
 최종 변경: Netaras,