JavaScript/DataView
DataView
編集概要
編集DataView は、JavaScript における低レベルのバイナリデータ操作を行うためのオブジェクトです。ArrayBuffer 上のデータに対して、ビッグエンディアンやリトルエンディアンなどの異なるエンディアン形式を指定して、様々なデータ型の読み書きが可能です。これにより、バイナリデータを柔軟に扱うことができます。
コンストラクタ
編集DataView()
編集new DataView(buffer [, byteOffset [, length]])
- 引数
- buffer: 操作対象の ArrayBuffer オブジェクト
- byteOffset (オプション): データビューの開始位置(デフォルトは 0)
- length (オプション): データビューが操作するバッファの長さ(デフォルトは
buffer.length
)
- 戻り値: 新しい DataView オブジェクト
プロパティ
編集DataView には、データを操作するためのメソッド群があり、プロパティは提供されていませんが、指定されたバッファ内のデータを読み書きするために、各メソッドを利用することができます。
メソッド
編集DataView.prototype.getInt8()
編集dataView.getInt8(byteOffset)
- 引数
- byteOffset: 読み取る位置のバイトオフセット
- 戻り値: 8ビット符号付き整数(Int8)として解釈した値
DataView.prototype.getUint8()
編集dataView.getUint8(byteOffset)
- 引数
- byteOffset: 読み取る位置のバイトオフセット
- 戻り値: 8ビット符号なし整数(Uint8)として解釈した値
DataView.prototype.getInt16()
編集dataView.getInt16(byteOffset [, littleEndian])
- 引数
- byteOffset: 読み取る位置のバイトオフセット
- littleEndian (オプション): true の場合、リトルエンディアン形式で解釈(デフォルトは false)
- 戻り値: 16ビット符号付き整数(Int16)として解釈した値
DataView.prototype.getUint16()
編集dataView.getUint16(byteOffset [, littleEndian])
- 引数
- byteOffset: 読み取る位置のバイトオフセット
- littleEndian (オプション): true の場合、リトルエンディアン形式で解釈(デフォルトは false)
- 戻り値: 16ビット符号なし整数(Uint16)として解釈した値
DataView.prototype.getInt32()
編集dataView.getInt32(byteOffset [, littleEndian])
- 引数
- byteOffset: 読み取る位置のバイトオフセット
- littleEndian (オプション): true の場合、リトルエンディアン形式で解釈(デフォルトは false)
- 戻り値: 32ビット符号付き整数(Int32)として解釈した値
DataView.prototype.getUint32()
編集dataView.getUint32(byteOffset [, littleEndian])
- 引数
- byteOffset: 読み取る位置のバイトオフセット
- littleEndian (オプション): true の場合、リトルエンディアン形式で解釈(デフォルトは false)
- 戻り値: 32ビット符号なし整数(Uint32)として解釈した値
DataView.prototype.getFloat32()
編集dataView.getFloat32(byteOffset [, littleEndian])
- 引数
- byteOffset: 読み取る位置のバイトオフセット
- littleEndian (オプション): true の場合、リトルエンディアン形式で解釈(デフォルトは false)
- 戻り値: 32ビット浮動小数点数(Float32)として解釈した値
DataView.prototype.getFloat64()
編集dataView.getFloat64(byteOffset [, littleEndian])
- 引数
- byteOffset: 読み取る位置のバイトオフセット
- littleEndian (オプション): true の場合、リトルエンディアン形式で解釈(デフォルトは false)
- 戻り値: 64ビット浮動小数点数(Float64)として解釈した値
DataView.prototype.setInt8()
編集dataView.setInt8(byteOffset, value)
- 引数
- byteOffset: 書き込む位置のバイトオフセット
- value: 書き込む値(8ビット符号付き整数)
- 戻り値: なし
DataView.prototype.setUint8()
編集dataView.setUint8(byteOffset, value)
- 引数
- byteOffset: 書き込む位置のバイトオフセット
- value: 書き込む値(8ビット符号なし整数)
- 戻り値: なし
DataView.prototype.setInt16()
編集dataView.setInt16(byteOffset, value [, littleEndian])
- 引数
- byteOffset: 書き込む位置のバイトオフセット
- value: 書き込む値(16ビット符号付き整数)
- littleEndian (オプション): true の場合、リトルエンディアン形式で書き込む(デフォルトは false)
- 戻り値: なし
DataView.prototype.setUint16()
編集dataView.setUint16(byteOffset, value [, littleEndian])
- 引数
- byteOffset: 書き込む位置のバイトオフセット
- value: 書き込む値(16ビット符号なし整数)
- littleEndian (オプション): true の場合、リトルエンディアン形式で書き込む(デフォルトは false)
- 戻り値: なし
DataView.prototype.setInt32()
編集dataView.setInt32(byteOffset, value [, littleEndian])
- 引数
- byteOffset: 書き込む位置のバイトオフセット
- value: 書き込む値(32ビット符号付き整数)
- littleEndian (オプション): true の場合、リトルエンディアン形式で書き込む(デフォルトは false)
- 戻り値: なし
DataView.prototype.setUint32()
編集dataView.setUint32(byteOffset, value [, littleEndian])
- 引数
- byteOffset: 書き込む位置のバイトオフセット
- value: 書き込む値(32ビット符号なし整数)
- littleEndian (オプション): true の場合、リトルエンディアン形式で書き込む(デフォルトは false)
- 戻り値: なし
DataView.prototype.setFloat32()
編集dataView.setFloat32(byteOffset, value [, littleEndian])
- 引数
- byteOffset: 書き込む位置のバイトオフセット
- value: 書き込む値(32ビット浮動小数点数)
- littleEndian (オプション): true の場合、リトルエンディアン形式で書き込む(デフォルトは false)
- 戻り値: なし
DataView.prototype.setFloat64()
編集dataView.setFloat64(byteOffset, value [, littleEndian])
- 引数
- byteOffset: 書き込む位置のバイトオフセット
- value: 書き込む値(64ビット浮動小数点数)
- littleEndian (オプション): true の場合、リトルエンディアン形式で書き込む(デフォルトは false)
- 戻り値: なし
使用例
編集let buffer = new ArrayBuffer(16); let view = new DataView(buffer); view.setInt8(0, 42); console.log(view.getInt8(0)); // 42