[解決済み] javascriptのArrayBuffer、何のためにあるのでしょうか?
質問
遅ればせながら、あるいは日本酒のせいかもしれませんが、先ほど ArrayBuffer で、本当に役に立つことが一つも思いつきません。
誰か教えてください。
画像を使わない用途で、誰か思い当たるものはありますか?
どのように解決するのですか?
基本的にArrayBufferはバイナリデータを保持するために使用されます。例えば、画像のバイナリデータなどです。
他の言語では、バッファは非常に有用であることが証明されています。もちろん、他のデータ型に比べると理解や使い方が少し難しいですが。
ArrayBufferは、JPG画像のデータ(RGBバイト)を取得し、アルファバイト(つまりRGBA)を追加してpngを生成するために使用できます。
Mozillaのサイトでは、ArrayBufferのちょっとした使い方が紹介されています。 こちら
<ブロッククオート複雑なデータ構造を扱う
1つのバッファに、異なるタイプの複数のビューを組み合わせることで、より効率的な運用が可能になります。 バッファ内の異なるオフセットから開始することで、対話することができます。 複数のデータ型を持つデータオブジェクトを これにより、例えば の複雑なデータ構造を扱うことができます。 WebGL データファイルです。 を使用する際に必要なC言語の構造体です。 js-ctypes .
このC言語の構造体を考えてみましょう。
struct someStruct {
unsigned long id;
char username[16];
float amountDue;
};
この形式のデータを含むバッファには、次のようにアクセスすることができます。
var buffer = new ArrayBuffer(24);
// ... read the data into the buffer ...
var idView = new Uint32Array(buffer, 0, 1);
var usernameView = new Uint8Array(buffer, 4, 16);
var amountDueView = new Float32Array(buffer, 20, 1);
そして、例えば、支払期限にアクセスするために
amountDueView[0]
.
注 は データ構造アライメント C言語の構造体では プラットフォームに依存します。これらに対する注意や配慮をする のパディングの違いです。
関連
-
vueディレクティブv-bindの使用と注意点
-
JSクリックイベント - Uncaught TypeError: プロパティ 'onclick' に null を設定できません。
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
JavaScriptの配列共通メソッド解説
-
VUEグローバルフィルターの概念と留意点、基本的な使い方
-
[解決済み] テスト
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み] 配列の結合時に未定義のプロパティ 'push' を読み込むことができない
-
[解決済み】awaitは非同期関数でのみ有効です。
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】React Uncaught Error: 対象コンテナが DOM 要素でない [重複]。
-
JSクリックイベント - Uncaught TypeError: プロパティ 'onclick' に null を設定できません。