이 번역은 완료되지 않았습니다. 이 문서를 번역해 주세요.

DataView는 플랫폼의 바이트 정렬 방법과 관계없이 ArrayBuffer에서 다양한 형태의 데이터를 읽고 쓰기 위한 저수준 인터페이스를 제공합니다.

문법

new DataView(buffer [, byteOffset [, byteLength]])

파라미터

buffer
새로운 데이터뷰 객체의 저장소로서 사용될 ArrayBuffer
byteOffset Optional
새로운 뷰가 참조할, 버퍼의 첫번째 위치부터 이동할 바이트 크기. (즉, 데이터뷰에서 버퍼를 읽기 위해 시작하는 위치)
지정하지 않았을 경우, 해당 버퍼의 뷰는 첫번째 바이트에서 시작.
byteLength Optional
(버퍼에서 읽을) 바이트 길이. 지정하지 않으면 뷰와 버퍼의 길이는 동일.

반환값

데이터 버퍼를 연결하는 새로운 데이터뷰.

Errors thrown

RangeError
Thrown if the byteOffset and byteLength result in the specified view extending past the end of the buffer.

Description

Endianness

Multi-byte number formats are represented in memory differently depending on machine architecture, see Endianness for an explanation. DataView accessors provide explicit control of how data will be accessed irrespective of the platform architecture's endianness.

var littleEndian = (function() {
  var buffer = new ArrayBuffer(2);
  new DataView(buffer).setInt16(0, 256, true /* littleEndian */);
  // Int16Array uses the platform's endianness.
  return new Int16Array(buffer)[0] === 256;
})();
console.log(littleEndian); // true or false

Properties

All DataView instances inherit from DataView.prototype and allows the addition of properties to all DataView objects.

DataView.prototype.constructor
Specifies the function that creates an object's prototype. The initial value is the standard built-in DataView constructor.
DataView.prototype.buffer Read only
The ArrayBuffer referenced by this view. Fixed at construction time and thus read only.
DataView.prototype.byteLength Read only
The length (in bytes) of this view from the start of its ArrayBuffer. Fixed at construction time and thus read only.
DataView.prototype.byteOffset Read only
The offset (in bytes) of this view from the start of its ArrayBuffer. Fixed at construction time and thus read only.

Methods

Read

DataView.prototype.getInt8()
Gets a signed 8-bit integer (byte) at the specified byte offset from the start of the view.
DataView.prototype.getUint8()
Gets an unsigned 8-bit integer (unsigned byte) at the specified byte offset from the start of the view.
DataView.prototype.getInt16()
Gets a signed 16-bit integer (short) at the specified byte offset from the start of the view.
DataView.prototype.getUint16()
Gets an unsigned 16-bit integer (unsigned short) at the specified byte offset from the start of the view.
DataView.prototype.getInt32()
Gets a signed 32-bit integer (long) at the specified byte offset from the start of the view.
DataView.prototype.getUint32()
Gets an unsigned 32-bit integer (unsigned long) at the specified byte offset from the start of the view.
DataView.prototype.getFloat32()
Gets a signed 32-bit float (float) at the specified byte offset from the start of the view.
DataView.prototype.getFloat64()
Gets a signed 64-bit float (double) at the specified byte offset from the start of the view.

Write

DataView.prototype.setInt8()
Stores a signed 8-bit integer (byte) value at the specified byte offset from the start of the view.
DataView.prototype.setUint8()
Stores an unsigned 8-bit integer (unsigned byte) value at the specified byte offset from the start of the view.
DataView.prototype.setInt16()
Stores a signed 16-bit integer (short) value at the specified byte offset from the start of the view.
DataView.prototype.setUint16()
Stores an unsigned 16-bit integer (unsigned short) value at the specified byte offset from the start of the view.
DataView.prototype.setInt32()
Stores a signed 32-bit integer (long) value at the specified byte offset from the start of the view.
DataView.prototype.setUint32()
Stores an unsigned 32-bit integer (unsigned long) value at the specified byte offset from the start of the view.
DataView.prototype.setFloat32()
Stores a signed 32-bit float (float) value at the specified byte offset from the start of the view.
DataView.prototype.setFloat64()
Stores a signed 64-bit float (double) value at the specified byte offset from the start of the view.

Example

var buffer = new ArrayBuffer(16);
var dv = new DataView(buffer, 0);

dv.setInt16(1, 42);
dv.getInt16(1); //42

Specifications

Specification Status Comment
Typed Array Specification Obsolete Superseded by ECMAScript 6
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'DataView' in that specification.
Standard Initial definition in an ECMA standard
ECMAScript Latest Draft (ECMA-262)
The definition of 'DataView' in that specification.
Draft  

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support912151012.15.1
DataView() without new throws Yes Yes40 No Yes ?
SharedArrayBuffer accepted as buffer60 ?55 ? ? ?
buffer912151012.15.1
byteLength912151012.15.1
byteOffset912151012.15.1
getFloat32912151012.15.1
getFloat64912151012.15.1
getInt16912151012.15.1
getInt32912151012.15.1
getInt8912151012.15.1
getUint16912151012.15.1
getUint32912151012.15.1
getUint8912151012.15.1
setFloat32912151012.15.1
setFloat64912151012.15.1
setInt16912151012.15.1
setInt32912151012.15.1
setInt8912151012.15.1
setUint16912151012.15.1
setUint32912151012.15.1
setUint8912151012.15.1
prototype912151012.15.1
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support4 Yes Yes15124.2 Yes
DataView() without new throws ? ? ?40 ? ? ?
SharedArrayBuffer accepted as buffer ? ? ?55 ? ? ?
buffer4 Yes Yes15124.2 Yes
byteLength4 Yes Yes15124.2 Yes
byteOffset4 Yes Yes15124.2 Yes
getFloat324 Yes Yes15124.2 Yes
getFloat644 Yes Yes15124.2 Yes
getInt164 Yes Yes15124.2 Yes
getInt324 Yes Yes15124.2 Yes
getInt84 Yes Yes15124.2 Yes
getUint164 Yes Yes15124.2 Yes
getUint324 Yes Yes15124.2 Yes
getUint84 Yes Yes15124.2 Yes
setFloat324 Yes Yes15124.2 Yes
setFloat644 Yes Yes15124.2 Yes
setInt164 Yes Yes15124.2 Yes
setInt324 Yes Yes15124.2 Yes
setInt84 Yes Yes15124.2 Yes
setUint164 Yes Yes15124.2 Yes
setUint324 Yes Yes15124.2 Yes
setUint84 Yes Yes15124.2 Yes
prototype4 Yes Yes15124.2 Yes

Compatibility notes

Starting with Firefox 40, DataView requires to be constructed with a new operator. Calling DataView() as a function without new, will throw a TypeError from now on .

var dv = DataView(buffer, 0); 
// TypeError: calling a builtin DataView constructor without new is forbidden
var dv = new DataView(buffer, 0);

See also

문서 태그 및 공헌자

이 페이지의 공헌자: urty5656, KKang, ksyeng
최종 변경자: urty5656,