new ArrayBuffer【コンストラクタ】
isView【ビュー判定】
slice【部分コピー】
new ArrayBuffer【コンストラクタ】
メモ
- バイナリデータの配列を生成
- 配列は 0 クリア
- 外部リンク (英語)
ArrayBuffer ( length ) ES2022 (13) ES2021 (12) ES2020 (11)
構文
new ArrayBuffer( length )
ArrayBuffer【バイナリデータ配列】
lengthサイズ (バイト単位)
例外
TypeError 例外:new なしで呼び出し
RangeError 例外:length が 0 未満
RangeError 例外:確保不可
例
const buff = new ArrayBuffer(8);
const typedArray = new Int32Array(buff)
console.log(typedArray);
// 出力:Int32Array(2) [0, 0]
console.log(typedArray.byteLength);
// 出力:8
console.log(typedArray.length);
// 出力:2
ArrayBuffer.isView【ビュー判定】
メモ
- ビューか否かを判定
- 外部リンク (英語)
ArrayBuffer.isView ( arg ) ES2022 (13) ES2021 (12) ES2020 (11)
構文
ArrayBuffer.isView( arg )
判定結果
true:ビュー
false:その他
arg判定するビュー
例
const buff = new ArrayBuffer(8);
console.log(ArrayBuffer.isView(buff));
// 出力:false
const typedArray = new Int32Array(buff)
console.log(ArrayBuffer.isView(typedArray));
// 出力:true
ArrayBuffer.prototype.slice【部分コピー】
メモ
- 部分コピーして新規に ArrayBuffer を作成
- 開始要素位置を0、終了要素位置を省略すれば全体コピー
- 外部リンク (英語)
ArrayBuffer.prototype.slice ( start, end ) ES2022 (13) ES2021 (12) ES2020 (11)
構文
arrayBuffer.slice( start[, end] )
コピーされた新規の ArrayBuffer (end<start の場合、サイズは 0)
start開始要素位置 (詳細は下記参照)
end終了要素位置 (この位置の要素は含まない / 詳細は下記参照)
start | 説明 |
---|---|
0 ≦ | 先頭からの要素位置 (要素数 <:要素数) |
< 0 | 末尾からの要素位置 (-1:末尾) |
end | 説明 |
---|---|
省略 | 末尾まで (要素数:末尾+1) |
0 ≦ | 先頭からの要素位置 (要素数 <:要素数) |
< 0 | 末尾からの要素位置 (-1:末尾) |
例
const buff1 = new ArrayBuffer(20);
const typedArray1 = new Int32Array(buff1)
for (let i = 0; i < typedArray1.length; i++) {
typedArray1[i] = i;
}
console.log(typedArray1);
// 出力:Int32Array(5) [0, 1, 2, 3, 4]
console.log(typedArray1.length);
// 出力:5
console.log(buff1.byteLength);
// 出力:20
const buff2 = buff1.slice(4, 16);
const typedArray2 = new Int32Array(buff2)
console.log(typedArray2);
// 出力:Int32Array(3) [1, 2, 3]
console.log(typedArray2.length);
// 出力:3
console.log(buff2.byteLength);
// 出力:12
for (let i = 0; i < typedArray2.length; i++) {
typedArray2[i] += 10;
}
console.log(typedArray1);
// 出力:Int32Array(5) [0, 1, 2, 3, 4]
console.log(typedArray2);
// 出力:Int32Array(3) [11, 12, 13]