DataViewオブジェクト

DataViewオブジェクトとは何か、およびその使用方法を確認してください

DataViewへのビューですArrayBuffer、 お気に入り型付き配列、ただしこの場合、配列内のアイテムはさまざまなサイズとタイプを持つことができます。

次に例を示します。

const buffer = new ArrayBuffer(64)
const view = new DataView(buffer)

これはバッファのビューであるため、開始するバイトと長さを指定できます。

const view = new DataView(buffer, 10) //start at byte 10
const view = new DataView(buffer, 10, 30) //start at byte 10, and add 30 items

これらの追加の引数を追加しない場合、ビューは位置0から始まり、バッファーに存在するすべてのバイトをロードします。

バッファにデータを追加するために使用できる一連のメソッドがあります。

  • setInt8()
  • setInt16()
  • setInt32()
  • setUint8()
  • setUint16()
  • setUint32()
  • setFloat32()
  • setFloat64()

これらのメソッドの1つを呼び出す方法は次のとおりです。

const buffer = new ArrayBuffer(64)
const view = new DataView(buffer)
view.setInt16(0, 2019)

デフォルトでは、データはを使用して保存されますビッグエンディアン表記。この設定を上書きして、3番目のパラメーターを追加することでリトルエンディアンを使用できます。true値:

const buffer = new ArrayBuffer(64)
const view = new DataView(buffer)
view.setInt16(0, 2019, true)

ビューからデータを取得する方法は次のとおりです。

  • getInt8()
  • getInt16()
  • getInt32()
  • getUint8()
  • getUint16()
  • getUint32()
  • getFloat32()
  • getFloat64()

例:

const buffer = new ArrayBuffer(64)
const view = new DataView(buffer)
view.setInt16(0, 2019)
view.getInt16(0) //2019

以来DataViewArrayBufferView、次の3つの読み取り専用プロパティがあります。

  • buffer元のArrayBufferを指します
  • byteOffsetそのバッファのオフセットです
  • byteLength内容の長さ(バイト単位)です

覚えておくべきことの1つは、型付き配列ではエンディアンを制御できないということです。システムのエンディアンを使用します。一般に、これは問題なく機能します。これは、前述の主な使用例は、マルチメディアAPIの1つを使用して配列をローカルで使用することであるためです。

型付き配列のデータを別のシステムに転送する場合、ビッグエンディアンを使用し、リトルエンディアンを使用すると、データが正しくエンコードされない可能性があります。

この種の制御が必要な場合は、DataView完璧な選択です。

私の無料ダウンロードJavaScriptビギナーズハンドブック


その他のブラウザチュートリアル: