JavaScript <その他リファレンス メモ> 言語 等CSSHTMLJavaScriptPython ライブラリ・プラットフォームjQuerymicro:bitXamarin ドキュメンテーションDoxygenJSDocMarkdownSHFBXML ドキュメント コメント その他各種資料 子サイト簡易リファレンス・Tips サポート寄付 ArrayBuffer【バイナリデータ配列】 コンストラクタ・メソッド new ArrayBuffer【コンストラクタ】isView【ビュー判定】slice【部分コピー】 new ArrayBuffer【コンストラクタ】メモ概要バイナリデータの配列を生成 配列は 0 クリア 外部リンクECMA-262 (英語) ArrayBuffer ( length )ES2023 (14) ES2022 (13) ES2021 (12) 構文 new ArrayBuffer( length ) ArrayBuffer【バイナリデータ配列】 lengthサイズ (バイト単位) TypeError new なしで呼び出し RangeError length が 0 未満 確保不可 例 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【ビュー判定】メモ概要ビューか否かを判定 外部リンクECMA-262 (英語) ArrayBuffer.isView ( arg )ES2023 (14) ES2022 (13) ES2021 (12) 構文 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、終了要素位置を省略すれば全体コピー 外部リンクECMA-262 (英語) ArrayBuffer.prototype.slice ( start, end )ES2023 (14) ES2022 (13) ES2021 (12) 構文 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]