DataView 객체의 buffer 속성은 해당 DataView가 참조하고 있는 ArrayBuffer 객체를 반환합니다. 이 속성을 활용하면 DataView 내부에서 원본 버퍼에 접근할 수 있으며, 버퍼의 크기(byteLength) 등 다양한 정보를 확인하는 데 유용합니다.
문법(Syntax)
buffer 속성의 기본 문법은 다음과 같습니다.
dataView.buffer;
이 속성은 별도의 매개변수 없이 호출되며, 현재 DataView와 연결된 ArrayBuffer 객체를 그대로 반환합니다.
예제(Example)
아래 예제는 ArrayBuffer를 생성한 뒤, 이를 기반으로 DataView를 만들고 buffer 속성을 통해 버퍼의 바이트 길이를 출력하는 코드입니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var arrayBuffer = new ArrayBuffer(156);
var dataView = new DataView(arrayBuffer);
document.write(dataView.buffer.byteLength);
</script>
</body>
</html>
실행 결과(Output)
156
설명 및 활용 팁
위 예제에서 new ArrayBuffer(156)은 총 156바이트 크기의 버퍼를 생성합니다. 이후 new DataView(arrayBuffer)로 해당 버퍼를 감싸는 DataView 객체를 만들면, dataView.buffer는 원본 ArrayBuffer를 반환하게 됩니다. 반환된 버퍼에 .byteLength를 적용하면 버퍼의 전체 크기인 156이 출력되는 것을 확인할 수 있습니다.
buffer 속성은 읽기 전용(read-only)이며, DataView 생성 시 전달된 버퍼를 변경하지 않습니다. 또한 byteOffset, byteLength 속성과 함께 사용하면 TypedArray나 DataView가 공유 버퍼의 어느 구간을 참조하는지 정확히 파악할 수 있어, 이진 데이터(binary data) 처리 시 매우 유용합니다.