Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- stl
- 구현
- 페이지교체알고리즘
- 13459
- 구슬탈출
- LOLIN D32
- 적두트리
- RBT
- 메모리계층
- 백준
- 9996
- 3XN 타일링
- ESP32
- 자료구조
- WebRTC란
- 1796
- mediastream
- tfjs
- c++
- OpenVidu
- 테스트주도개발
- 데이터 링크 계층
- Vite 사용 이유
- 백준 2133
- 2623
- REACT
- dp
- 풀이
- TDD란?
- TDD
Archives
- Today
- Total
그냥 블로그
[JavaScript] ArrayBuffer 본문
반응형
+ More (주말)
- 프로세스 메모리 구조 정리하기
- call Stack 찾아보기
- v8엔진에서 프로세스 동작 정리하기
- 브라우저 / v8 엔진에서 프로세스 동작 차이까지 알아보기
- UML - 클래스 다이어그램 정리해보기
ArrayBuffer
레퍼런스 타입으로 되어있고, 고정된 길이의 연속된 메모리 공간을 할당해 사용하겠다고 알려주는 역할을한다.
오디오나 미디어 전용인 버퍼도 있다 :)
js에서 바이너리 데이터 (ex) 이미지 처리) 등에 사용된다.
let arrBuffer = new ArrayBuffr(16);
ArrayBuffer은 길이가 고정되어 있다. 정확하게 메모리 어느 바이트만큼 명시하는 역할을 하고 있기에 배열처럼 arry[0] 같은 get은 불가능 하다.
=> ArrayBuffer는 Array가 아니다!!
개별 바이트에 엑세스하려면 "뷰" 개체가 필요하다..! buffer[index]
뷰(TypedArray) : Unit8Array, Unit16Array.... 등등...
뷰 객체는 그 자체로는 아무것도 저장하지 않는다. 그저, 저장된 바이트에 대한 해석을 제공하는 것.
let buffer = new ArrayBuffer(16); // create a buffer of length 16
let view = new Uint32Array(buffer); // treat buffer as a sequence of 32-bit integers
alert(Uint32Array.BYTES_PER_ELEMENT); // 4 bytes per integer
alert(view.length); // 4, it stores that many integers
alert(view.byteLength); // 16, the size in bytes
// let's write a value
view[0] = 123456;
// iterate over values
for(let num of view) {
alert(num); // 123456, then 0, 0, 0 (4 values total)
}
=> ArrayBuffer로 특정 길이 메모리를 할당할 수 있고 Unit32Array 같은 TypedArray/ 뷰로 접근할 수 있다!
https://ko.javascript.info/arraybuffer-binary-arrays
https://velog.io/@chltjdrhd777/ArrayBuffer-%EC%99%80-Blob
'Front-End > JavaScript' 카테고리의 다른 글
[JS] is not a contructor 순환 참조 (0) | 2024.08.04 |
---|---|
[JS] 스레드와 병렬 처리/ 비동기 처리 문법 / Promise / Async await (0) | 2024.07.29 |
[JS] 이벤트 핸들러/ 리스너/ 에미터/ 루프 (0) | 2024.07.29 |