Bitwise Operator
비트(bit) : 기술적으로 컴퓨터는 숫자나 문자, 문자열로 작동하는 것이 아니라 이진 숫자(비트)만 사용한다. 그리고 UTF-8과 같은 인코딩을 사용해 저장된 비트 조합을 숫자, 문자, 다른 기호에 매핑한다.
UTF-8
유니코드를 인코딩(encoding)하는 방식이다. 전세계에서 사용하는 약속이다.
유니코드 : 전세계 언어를 모두 표시할 수 있는 표준코드를 만들기로 했다. 바로 유니코드(Unicode)다.
자바스크립트에서 9,007,199,254,740,991까지의 범위 (64비트의 환경)를 가진 모든 정수들은 toString(2)메소드를 통해 이진 문자열로 표현 될 수 있다.
비트 연산자를 이용하면 이진 문자열을 직접 비교/조작 할 수 있다.
형식화 배열
형식화 배열(typed array)은 배열같은 객체이고 원시 이진 데이터에 엑세스하기 위한 메커니즘을 제공한다.
아시다시피 Array객체는 동적으로 늘었다 줄고 어떤 javascript값이든 가질 수 있다. 자바스크립트 엔진은 이러한 배열이 빨라지도록 최적화를 수행한다. 그러나, audio 및 video조작과 같은 기능 추가, WebSocket을 사용한 원시 데이터에 엑세스 등 웹 어플리케이션이 점점 강력해짐에 따라, 빠르고 쉽게 형식화 배열의 원시 이진 데이터를 조작할 수 있게 하는 것이 자바스크립트 코드에 도움이 될 때가 있음이 분명해 졌다.
그러나, 형식화 배열은 보통 배열과 혼동 되지는 않는다. 형식화 배열에 Array.isArray() 호출은 false를 반환하기에. 게다가, 보통 배열에 이용할 수 있는 모든 메서드가 형식화 배열에 의해 지원되지는 않는다 (ex. push, pop)
버퍼 및 뷰 : 형식화 배열 구조
최대 유연성 및 효율을 달성하기 위해, 자바스크립트 형식화 배열은 구현을 버퍼 및 뷰로 나눈다.
버퍼(ArrayBuffer 객체에 의해 구현됨)는 데이터 부분(chunk, 덩어리)을 나타내는 객체이다. 이야기 할 형식이 없으며, 그 콘텐츠에 엑세스하기 위한 메커니즘을 제공하지 않는다. 버퍼에 포함된 메모리에 엑세스 하기위해, 뷰를 사용할 필요가 있다.
뷰는 문맥(context, 즉 데이터형, 시작 오프셋 및 요소 수)을 제공해 데이터를 실제 형식화 배열로 바꾼다.
참고 및 출처
'JavaScript' 카테고리의 다른 글
자바스크립트 개발자가 알아야할 33가지 개념[#14. Factorise and Classes] (0) | 2022.05.27 |
---|---|
자바스크립트 개발자가 알아야할 33가지 개념[#13. DOM and Layout Trees] (0) | 2022.05.25 |
자바스크립트 개발자가 알아야할 33가지 개념[#11. JavaScript Engines] (0) | 2022.05.21 |
자바스크립트 개발자가 알아야할 33가지 개념[#10. 스케쥴링 : setTimeout 과 setInterval] (0) | 2022.05.20 |
자바스크립트 개발자가 알아야할 33가지 개념[#09. 이벤트 루프] (0) | 2022.05.19 |
댓글