JavaScriptのTypedArray.bufferプロパティとは?使い方をわかりやすく解説
TypedArrayのbufferプロパティは、そのTypedArrayが参照している基盤となるArrayBufferオブジェクトを返します。TypedArrayはArrayBuffer上に構築された「ビュー」であり、このプロパティを使うことで、データの実体である元のバッファへアクセスすることができます。
構文
bufferプロパティの基本的な構文は以下の通りです。
obj.buffer;
戻り値
現在のTypedArrayが使用しているArrayBufferオブジェクトを返します。なお、このプロパティは読み取り専用のため、別のバッファを代入することはできません。
サンプルコード
次の例では、156バイトのArrayBufferを作成し、それを基にFloat32Arrayを生成したうえで、bufferプロパティ経由でバッファのサイズを取得しています。
<html> <head> <title>JavaScript Example</title> </head> <body> <script type="text/javascript"> var buffer = new ArrayBuffer(156); var float32 = new Float32Array(buffer); document.write(float32.buffer.byteLength); </script> </body> </html>
実行結果
156
コードの解説
まずnew ArrayBuffer(156)で156バイト分のメモリ領域を持つArrayBufferを作成します。続いて、そのバッファを引数としてnew Float32Array(buffer)を実行することで、同じメモリ領域を扱うFloat32Array(ビュー)が生成されます。float32.bufferで元のArrayBufferを取得し、byteLengthプロパティによってバッファ全体のサイズである「156」が出力されます。
覚えておきたいポイント
- bufferプロパティは読み取り専用であり、値の再代入はできません。
byteLengthプロパティと組み合わせると、バッファ全体のバイト数を簡単に確認できます。- Float32Arrayは1要素あたり4バイトを使用するため、156バイトのバッファには最大39個の数値を格納できます。
- 複数のTypedArrayが同じArrayBufferを共有することも可能で、bufferプロパティを使えば共通のバッファを特定できます。
-
JavaScriptのlastIndexプロパティとは?正規表現のマッチ位置を取得する方法
lastIndexプロパティとは JavaScriptにおける「lastIndex」プロパティは、正規表現オブジェクトが持つプロパティの一つで、直前のマッチが終了した位置(インデックス)を返します。そして、次回の検索はその位置から再開されるという仕組みになっています。 重要な注意点として、lastIndexプロパティは「g」(グローバル)フラグが設定されている場合にのみ機能します。「g」フラグがない状態では、lastIndexは常に0のまま変化しないため、連続した検索を行うことができません。 以下は、JavaScriptでlastIndexプロパティを使用する際のコード例です。 サンプルコード
-
JavaScriptのsourceプロパティとは?正規表現パターンテキストを取得する方法を解説
JavaScriptのsourceプロパティは、RegExp(正規表現)オブジェクトに設定されたパターン文字列そのものを返すプロパティです。g(グローバルマッチ)やi(大文字・小文字を区別しない)などのフラグは結果に含まれず、マッチング対象となる純粋な正規表現テキストのみを取得できます。 動的に正規表現を組み立てたい場合や、デバッグ時に実際に適用されているパターンを確認したい場合などに活用できる便利なプロパティです。 基本構文 const regex = /pattern/flags; console.log(regex.source); // パターン文字列のみが返される サンプルコード