Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

이 페이지는 영어로부터 커뮤니티에 의하여 번역되었습니다. MDN Web Docs에서 한국 커뮤니티에 가입하여 자세히 알아보세요.

ArrayBuffer

BaselineWidely available *

ArrayBuffer 객체는 일반적인 원시 바이너리 데이터 버퍼를 표현하는 데 사용됩니다.

다른 언어에서는 종종 "바이트 배열"이라고 부르는 바이트 배열입니다.ArrayBuffer의 내용을 직접 수정하는 것은 불가능하지만, 대신 버퍼를 특정 형식으로 나타내는형식화 배열이나DataView 객체 중 하나를 생성하여, 이를 통해 버퍼의 내용을 읽거나 쓸 수 있습니다.

ArrayBuffer() 생성자는 주어진 길이(바이트)를 가진 새로운ArrayBuffer를 생성합니다.Base64 문자열이나로컬 파일과 같은 기존 데이터에서도 배열 버퍼를 생성할 수 있습니다.

ArrayBufferTransferable objects입니다.

설명

ArrayBuffers 크기 조절하기

ArrayBuffer 객체는ArrayBuffer() 생성자를 호출할 때maxByteLength 옵션을 포함하여 크기를 조정할 수 있도록 만들 수 있습니다.ArrayBuffer의 크기를 조정할 수 있는지 여부 그리고 최대 크기는 각각resizablemaxByteLength 속성에 접근하여 질의 할 수 있습니다.resize() 호출로 크기 조정이 가능한ArrayBuffer에 새 크기를 할당할 수 있습니다. 새 바이트는 0으로 초기화됩니다.

이러한 기능을 사용하면ArrayBuffer의 크기를 더 효율적으로 조정할 수 있습니다.그렇지 않으면 새로운 크기로 버퍼의 복사본을 만들어야 합니다. 또한 이와 관련하여 WebAssembly와 JavaScript 패리티를 제공합니다(Wasm 선형 메모리는WebAssembly.Memory.prototype.grow()로 크기를 조정할 수 있습니다).

ArrayBuffers 전송하기

ArrayBuffer 객체는Web Workers 혹은서비스 워커,structured clone algorithm 사용과 같이 각기 다른 실행 문맥 간에 전송될 수 있습니다. 이는Worker.postMessage() 혹은ServiceWorker.postMessage() 호출에서전송 가능한 객체ArrayBuffer를 전달함으로서 처리될 수 있습니다. 순수한 JavaScript에서는transfer() 혹은transferToFixedLength() 메서드를 사용하여 메모리 소유권을 하나의ArrayBuffer에서 다른ArrayBuffer로 이전할 수도 있습니다.

ArrayBuffer가 전송되면 원본은 더 이상 사용할 수 없게 되는 분리 상태가 됩니다. 어느 순간에든 실제로 메모리에 접근할 수 있는ArrayBuffer의 복사본은 하나만 존재하게 됩니다. 분리된 버퍼는 다음과 같은 동작을 합니다.

  • byteLength는 0이 됩니다(버퍼와 연관된 형식화 배열 뷰 모두에서).
  • resize()slice()와 같은 메서드는 호출될 때TypeError를 발생시킵니다. 연관된 타입이 지정된 배열 뷰의 메서드도TypeError를 던집니다. 연관된 형식화 배열 뷰의 메서드 역시TypeError를 발생시킵니다.

ArrayBuffer가 분리되었는지 여부는detached 속성으로 확인할 수 있습니다.

생성자

ArrayBuffer()

새로운ArrayBuffer 객체를 생성합니다.

정적 속성

get ArrayBuffer[@@species]

파생 객체를 만드는 데 사용되는 생성자 함수입니다.

정적 메서드

ArrayBuffer.isView()

arg 유형이형식화 배열 객체이거나DataView와 같은 ArrayBuffer 중 하나인 경우,true를 반환합니다. 그렇지 않으면false를 반환합니다.

인스턴스 속성

다음 속성은ArrayBuffer.prototype에 정의되어 있으며 모든ArrayBuffer 인스턴스와 공유됩니다.

ArrayBuffer.prototype.byteLength

ArrayBuffer의 읽기 전용 크기(바이트)입니다. 배열리 구성될 때 설정되며 변경할 수 없습니다.

ArrayBuffer.prototype.byteLength

ArrayBuffer의 바이트 단위의 크기입니다. 배열이 생성될 때 설정되며,ArrayBuffer의 크기를 변경할 수 있는 경우에만ArrayBuffer.prototype.resize() 메서드를 사용하여 변경할 수 있습니다.

ArrayBuffer.prototype.constructor

인스턴스 객체를 만드는 생성자 함수입니다.ArrayBuffer 인스턴스의 경우ArrayBuffer 생성자가 초기 값입니다.

ArrayBuffer.prototype.detached

읽기 전용입니다. 만약ArrayBuffer가 분리(전송)되었다면true를 반환하고 그렇지 않으면false를 반환합니다.

ArrayBuffer.prototype.maxByteLength

ArrayBuffer의 크기가 조절 가능한 바이트 단위의 읽기 전용 최대 크기 입니다. 배열이 생성될때 설정되며 변경될 수 없습니다.

ArrayBuffer.prototype.resizable

읽기 전용압니다.ArrayBuffer가 크기 조절이 가능하다면true를 반환하고 그렇지 않으면false를 반환합니다.

ArrayBuffer.prototype[@@toStringTag]

@@toStringTag 속성의 초기값은 문자열"ArrayBuffer" 입니다. 이 속성은Object.prototype.toString()에서 사용합니다.

인스턴스 메서드

ArrayBuffer.prototype.resize()

바이트 단위의ArrayBuffer의 크기를 지정된 크기로 재조정합니다.

ArrayBuffer.prototype.slice()

ArrayBufferbegin을 포함한 지점부터end미만의 바이트가 복사된 새ArrayBuffer를 반환합니다.begin 또는end가 음수라면 배열의 시작이 아닌 마지막 인덱스를 참조합니다.

ArrayBuffer.prototype.transfer()

이 버퍼와 동일한 바이트 내용으로 새ArrayBuffer를 생성합니다. 그 다음 이 버퍼를 분리합니다.

ArrayBuffer.prototype.transferToFixedLength()

이 버퍼와 동일한 바이트 내용으로 크기 조절이 불가한 새ArrayBuffer를 생성합니다. 그 다음 이 버퍼를 분리합니다.

ArrayBuffer.prototype.slice()

컨텐츠의begin을 포함한 지점부터end미만까지 해당ArrayBuffer의 바이트 복사본인 새ArrayBuffer를 반환합니다.begin 또는end가 음수이면 처음부터가 아니라 배열 끝에서 인덱스를 참조합니다.

예제

ArrayBuffer 만들기

이 예에서는 버퍼를 참조하는Int32Array 뷰가 있는 8바이트 버퍼를 만듭니다.

js
const buffer = new ArrayBuffer(8);const view = new Int32Array(buffer);

명세서

Specification
ECMAScript® 2026 Language Specification
# sec-arraybuffer-objects

브라우저 호환성

같이 보기

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp