JavaScript의 ArrayBuffer 객체는 고정 길이의 바이너리(이진) 데이터 버퍼를 표현하는 객체입니다. 이 객체가 제공하는 isView() 함수는 인수로 전달된 값이 ArrayBuffer의 뷰(view), 즉 DataView 또는 타입 배열(Typed Array)에 해당하는지 검사합니다. 조건을 만족하면 true를, 그렇지 않으면 false를 반환합니다.
isView()는 인스턴스 메서드가 아닌 정적(static) 메서드이므로, 반드시 ArrayBuffer.isView() 형태로 호출해야 합니다.
문법
arrayBuffer.isView(arg)
- arg: ArrayBuffer의 뷰인지 확인할 값입니다.
- 반환값: 인수가 DataView 또는 타입 배열이면
true, 그 외에는false
예제 1: 타입 배열 확인하기
다음 예제에서는 Int32Array 객체를 isView() 함수에 전달해 결과를 확인합니다.
<html> <head> <title>JavaScript Example</title> </head> <body> <script type="text/javascript"> var arrayBuffer = new ArrayBuffer(5); var bool = ArrayBuffer.isView(new Int32Array()); document.write(bool); </script> </body> </html>
출력 결과
true
Int32Array는 ArrayBuffer의 뷰에 해당하므로 true가 출력됩니다.
예제 2: 뷰가 아닌 값 전달하기
반대로 타입 배열이 아닌 일반 객체, null, undefined를 전달하거나 인수 없이 호출하면 모두 false를 반환합니다.
<html> <head> <title>JavaScript Example</title> </head> <body> <script> console.log(ArrayBuffer.isView(new Int32Array())); // true console.log(ArrayBuffer.isView()); // false console.log(ArrayBuffer.isView(null)); // false console.log(ArrayBuffer.isView(undefined)); // false </script> </body> </html>
출력 결과
true false false false
정리
ArrayBuffer.isView()는 전달된 값이 DataView나 타입 배열(Int8Array, Uint8Array, Int32Array 등)처럼 ArrayBuffer를 참조하는 뷰 객체인지 판별할 때 유용합니다. 바이너리 데이터를 다루는 코드에서 인수의 타입을 검증하는 용도로 활용해 보세요.