SYNCERのロゴ
アイキャッチ画像

DataView - バイナリデータに入出力するオブジェクト

DataViewは固定長のバイナリデータを読み書きする機能を備えたオブジェクトです。

概要

名前
DataView
仕様書
https://tc39.github.io/ecma262/#sec-dataview-objects

チュートリアル

インスタンスを作成するにはコンストラクタ関数を利用します。引数にはArrayBufferを指定して下さい。下記は8byteのバッファを作成し、そのバイナリデータを入出力するためのDataViewを作成する例です。

var buffer = new ArrayBuffer( 8 ) ;
var dataView = new DataView( buffer ) ;

第2引数(byteOffset)に読み込みを開始する位置のオフセットを指定することで、バイナリデータを部分的に取り扱うことができます。例えば下記は、256byteのバイナリデータにおいて、129〜256byteまでの部分を入出力するためのDataViewを作成する例です。

var buffer = new ArrayBuffer( 256 ) ;
var dataView = new DataView( buffer, 128 ) ;

さらに第3引数(byteLength)に読み込むサイズを指定できます。例えば下記は、256byteのバイナリデータにおいて、129〜136byteまでの部分を入出力するためのDataViewを作成する例です。

var buffer = new ArrayBuffer( 256 ) ;
var dataView = new DataView( buffer, 128, 8 ) ;

プロパティ

prototype.buffer

自身(ビュー)が参照しているArrayBufferを返すプロパティです。

prototype.byteLength

ビューが参照しているバッファ(ArrayBuffer)のサイズをByte単位で返すプロパティです。

prototype.byteOffset

ビューが参照しているバッファ(ArrayBuffer)のオフセットをByte単位で返すプロパティです。

prototype.constructor

コンストラクタのDataViewを返すプロパティです。

メソッド

prototype.getFloat32()

参照しているArrayBufferの指定した位置から、32bit浮動小数点数でバイナリデータを読み込むメソッドです。

prototype.getFloat64()

参照しているArrayBufferの指定した位置から、64bit浮動小数点数でバイナリデータを読み込むメソッドです。

prototype.getInt16()

参照しているArrayBufferの指定した位置から、符号付きの16bit整数値でバイナリデータを読み込むメソッドです。

prototype.getInt32()

参照しているArrayBufferの指定した位置から、符号付きの32bit整数値でバイナリデータを読み込むメソッドです。

prototype.getInt8()

参照しているArrayBufferの指定した位置から、符号付きの8bit整数値でバイナリデータを読み込むメソッドです。

prototype.getUint16()

参照しているArrayBufferの指定した位置から、符号なし16bit整数値でバイナリデータを読み込むメソッドです。

prototype.getUint32()

参照しているArrayBufferの指定した位置から、符号付きの32bit整数値でバイナリデータを読み込むメソッドです。

prototype.getUint8()

参照しているArrayBufferの指定した位置から、符号なし8bit整数値でバイナリデータを読み込むメソッドです。

prototype.setFloat32()

参照しているArrayBufferの指定した位置から、32bit浮動小数点数で上書きするメソッドです。

prototype.setFloat64()

参照しているArrayBufferの指定した位置から、64bit浮動小数点数で上書きするメソッドです。

prototype.setInt16()

参照しているArrayBufferの指定した位置から、16bit浮動小数点数で上書きするメソッドです。

prototype.setInt32()

参照しているArrayBufferの指定した位置から、符号付き32bit整数値で上書きするメソッドです。

prototype.setInt8()

参照しているArrayBufferの指定した位置から、符号付き8bit整数値で上書きするメソッドです。

prototype.setUint16()

参照しているArrayBufferの指定した位置から、符号なし16bit整数値で上書きするメソッドです。

prototype.setUint32()

参照しているArrayBufferの指定した位置から、符号なし32bit整数値で上書きするメソッドです。

prototype.setUint8()

参照しているArrayBufferの指定した位置から、符号なし8bit整数値で上書きするメソッドです。

サポート状況

FeaturesChromeFirefoxSafariEdgeIEOperaiOS SafariAndroid
DataView 15+ 5.1+ 10+ 11.6+ 4.0+
prototype 15+ 5.1+ 10+ 11.6+ 4.0+
buffer 30+ 15+ 10+ 11+ 11.6+ 10.0+ 4.4+
byteLength 30+ 15+ 10+ 11+ 11.6+ 10.0+ 4.4+
byteOffset 30+ 15+ 10+ 11+ 11.6+ 10.0+ 4.4+
constructor 15+ 7.1+ 10+ 11.6+ 8.3+ 4.0+
getFloat32() 15+ 5.1+ 10+ 11.6+ 4.0+
getFloat64() 15+ 5.1+ 10+ 11.6+ 4.0+
getInt16() 15+ 5.1+ 10+ 11.6+ 4.0+
getInt32() 15+ 5.1+ 10+ 11.6+ 4.0+
getInt8() 15+ 5.1+ 10+ 11.6+ 4.0+
getUint16() 15+ 5.1+ 10+ 11.6+ 4.0+
getUint32() 15+ 5.1+ 10+ 11.6+ 4.0+
getUint8() 15+ 5.1+ 10+ 11.6+ 4.0+
setFloat32() 15+ 5.1+ 10+ 11.6+ 4.0+
setFloat64() 15+ 5.1+ 10+ 11.6+ 4.0+
setInt16() 15+ 5.1+ 10+ 11.6+ 4.0+
setInt32() 15+ 5.1+ 10+ 11.6+ 4.0+
setInt8() 15+ 5.1+ 10+ 11.6+ 4.0+
setUint16() 15+ 5.1+ 10+ 11.6+ 4.0+
setUint32() 15+ 5.1+ 10+ 11.6+ 4.0+
setUint8() 15+ 5.1+ 10+ 11.6+ 4.0+
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年9月30日 (土)
コンテンツを公開しました。