new DataView【コンストラクタ】
get~【データ値取得】メソッド
set~【データ値設定】メソッド
new DataView【コンストラクタ】
メモ
概要
- DataView【データビュー】のコンストラクタ
関連
外部リンク
- ECMA-262 (英語)
The DataView Constructor ES2024 (15) ES2023 (14) ES2022 (13)
構文
new DataView( buffer [, byteOffset [, byteLength ]] )
bufferArrayBuffer【バイナリデータ配列】
byteOffsetバイト単位オフセット (省略:0 先頭)
byteLengthバイト単位サイズ (省略:末尾まで)
TypeError
new 無しで呼び出し
bufferがArrayBuffer【バイナリデータ配列】以外
RangeError 指定範囲がbufferの領域外
byteOffset < 0
bufferのサイズ < byteOffset
bufferのサイズ < byteOffset + byteLength
例
var buff = new ArrayBuffer(100);
var dataView = new DataView(buff, 50, 10);
console.log(dataView.byteLength);
// 出力:10
console.log(dataView.byteOffset);
// 出力:50
DataView.prototype.get~【データ値取得】
メモ
概要
- DataView【データビュー】からデータ値を取得
- エンディアン (endianness) の指定が可能
関連
外部リンク
- ECMA-262 (英語)
DataView.prototype.getBigInt64 ( byteOffset [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.getBigUint64 ( byteOffset [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.getInt8 ( byteOffset ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.getUint8 ( byteOffset ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
getBigInt64( byteOffset [, littleEndian ] ) // 64ビット 符号あり整数 取得
getBigUint64( byteOffset [, littleEndian ] ) // 64ビット 符号なし整数 取得
getFloat32( byteOffset [, littleEndian ] ) // 32ビット IEEE 浮動小数点数 取得
getFloat64( byteOffset [, littleEndian ] ) // 64ビット IEEE 浮動小数点数 取得
getInt8( byteOffset ) // 8ビット 符号あり整数 取得
getInt16( byteOffset [, littleEndian ] ) // 16ビット 符号あり整数 取得
getInt32( byteOffset [, littleEndian ] ) // 32ビット 符号あり整数 取得
getUint8( byteOffset ) // 8ビット 符号なし整数 取得
getUint16( byteOffset [, littleEndian ] ) // 16ビット 符号なし整数 取得
getUint32( byteOffset [, littleEndian ] ) // 32ビット 符号なし整数 取得
取得したデータ値
byteOffsetオフセット (バイト単位)
littleEndianリトルエンディアンか否か (省略:false)
true:リトルエンディアン (little endian) 下位バイトから格納 (Intel x86系 等)
false:ビッグエンディアン (big endian) 上位バイトから格納 (Motorola MC68000系 等)
RangeError 指定範囲がビューの領域外
byteOffset < 0
ビューのサイズ < byteOffset + データ型のバイト数
例
var buff = new ArrayBuffer(20);
var dataView1 = new DataView(buff, 4, 12); // 4 バイト目から 12バイト (3 要素)
console.log(dataView1.byteOffset, dataView1.byteLength);
// 出力:4 12
var byteOffset = 0;
for (var i = 0; i < (dataView1.byteLength / 4); i++) {
dataView1.setInt32(byteOffset, (0x10 + i));
console.log("(" + byteOffset + ")",
"0x" + dataView1.getInt32(byteOffset).toString(16));
byteOffset += 4;
}
// 出力:(0) 0x10
// 出力:(4) 0x11
// 出力:(8) 0x12
var dataView2 = new DataView(buff); // 0 バイト目から 20バイト (5 要素)
console.log(dataView2.byteOffset, dataView2.byteLength);
// 出力:0 20
byteOffset = 0;
for (var i = 0; i < (dataView2.byteLength / 4); i++) {
console.log("(" + byteOffset + ")",
"0x" + dataView2.getInt32(byteOffset).toString(16),
"0x" + dataView2.getInt32(byteOffset, true).toString(16));
byteOffset += 4;
}
// 出力:(0) 0x0 0x0
// 出力:(4) 0x10 0x10000000
// 出力:(8) 0x11 0x11000000
// 出力:(12) 0x12 0x12000000
// 出力:(16) 0x0 0x0
DataView.prototype.set~【データ値設定】
メモ
概要
- DataView【データビュー】にデータ値を設定
- エンディアン (endianness) の指定が可能
関連
外部リンク
- ECMA-262 (英語)
DataView.prototype.setBigInt64 ( byteOffset, value [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.setBigUint64 ( byteOffset, value [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.setInt8 ( byteOffset, value ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.setUint8 ( byteOffset, value ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13) DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
setBigInt64( byteOffset, value [, littleEndian ] ) // 64ビット 符号あり整数 設定
setBigUint64( byteOffset, value [, littleEndian ] ) // 64ビット 符号なし整数 設定
setFloat32( byteOffset, value [, littleEndian ] ) // 32ビット IEEE 浮動小数点数 設定
setFloat64( byteOffset, value [, littleEndian ] ) // 64ビット IEEE 浮動小数点数 設定
setInt8( byteOffset, value ) // 8ビット 符号あり整数 設定
setInt16( byteOffset, value [, littleEndian ] ) // 16ビット 符号あり整数 設定
setInt32( byteOffset, value [, littleEndian ] ) // 32ビット 符号あり整数 設定
setUint8( byteOffset, value ) // 8ビット 符号なし整数 設定
setUint16( byteOffset, value [, littleEndian ] ) // 16ビット 符号なし整数 設定
setUint32( byteOffset, value [, littleEndian ] ) // 32ビット 符号なし整数 設定
なし
byteOffsetオフセット (バイト単位)
value設定値
littleEndianリトルエンディアンか否か (省略:false)
true:リトルエンディアン (little endian) 下位バイトから格納 (Intel x86系 等)
false:ビッグエンディアン (big endian) 上位バイトから格納 (Motorola MC68000系 等)
RangeError 指定範囲がビューの領域外
byteOffset < 0
ビューのサイズ < byteOffset + データ型のバイト数