var a = new ArrayBuffer(10)a.byteLength // =>10
型付き配列と ArrayBuffer_html/css_WEB-ITnose について
は型付き配列 (Typed Array) であり、HTML5 で新しく導入された API です。型付き配列を一言で説明すると、JS がバイナリデータを操作するためのインターフェースです。 ご存知のとおり、バイナリ データを直接操作するとプログラムの効率が向上します。JS は従来の配列に対して多くの最適化を行ってきましたが (JS 配列はオブジェクトとして実装されます)、JS 配列の効率はそれほど高くありませんでした。たとえば、WebGL での画像データ送信でネイティブ JS 配列が使用されている場合、ブラウザはグラフィックス カードと通信するときにそれをバイナリ形式に変換する必要があり、時間がかかります。大量のバイナリ データを操作する必要があるからこそ、ArrayBuffer が登場しました。 Canvas (Canvas ノートの Canvas の基本原理を参照してください) では、getImageDate() メソッドを使用して返される ImageData オブジェクトは、HTML 標準では CanvasPixelArray と呼ばれます。値が処理されるため、ArrayBuffer とは異なります。ビューのタイプ Unit8Array は少し異なりますが、その他はすべて同じです (Unit8Array は 0 ~ 255 の数値のみを処理できますが、CanvasPixelArray はそれ以上の数値を処理できます)。型付き配列の概念については、まだ混乱するかもしれません。私が理解している ArrayBuffer の主要な概念を 1 つずつ整理してみましょう:
View (ビュー)
ほとんどの資料では、次のようにビューについて 1 つの文で説明されています。このブログ (ArrayBuffer: Typed Array) のビューについての説明です:
ArrayBuffer は、さまざまな種類のデータを格納できるメモリ領域です。データが異なれば、「ビュー」と呼ばれる保存方法も異なります。
最初に上記の説明を見たときは、「ビュー」の意味がまだ理解できませんでしたが、ArrayBuffer の概念は一旦置いといて、バイナリ データを操作するためのインターフェイスであると想像してください。 8 ビットなどの 2 進数 1 は 00000001 です。したがって、この 1 を操作するときは、1 の形式で操作する必要があります。すると、ここでの 1 はビューになります。 view はバイナリデータとして理解するのが簡単です。 C 言語を知っていれば、この概念を理解するのは難しくありません。たとえば、C 言語の文字列は実際には数値であるため、ここでの文字列も「ビュー」として理解できます。実際、ここでのビューは型付き配列です。
ArrayBuffer の概念
ArrayBuffer は不透明なメモリ領域です (いわゆる不透明とは、直接操作できないデータ ブロックを意味します)。単位はバイト (Byte) で、その byteLength 属性はそのメモリを返します。サイズ。 JS では、コンストラクターの形式で ArrayBuffer 領域を宣言します。 var a = new ArrayBuffer(10)a.byteLength // =>10
ログイン後にコピー
このメモリ領域では、さまざまなビューを使用して任意の数の型付き配列を作成でき、これらの型付き配列は重複することもできます。 8 つの異なる型付き配列 (ビュー) があります。つまり、 var a = new ArrayBuffer(10)a.byteLength // =>10
Int8Array: 8 ビット符号付き整数、長さ 1 バイト。
var buffer = new ArrayBuffer(12)var x = new Float32Array(buffer, 0, 2)var y = new Float32Array(buffer, 4, 1)x[1] = 7;console.log(y[0]); // 7
型付き配列と通常の配列の違い
型付き配列は本質的にバイナリデータであり、ArrayBuffer 領域は指定された長さを持っています。これらに基づいて、型付き配列と通常の配列の違いを推測できます。異なる型を混合できる通常の JS 配列とは異なり、すべて数値です。たとえば、次の例の代入は無効です
型付き配列の長さは固定です
var a = new Int8Array(3)a[0] = 'hello'a[0] // =>0 显示a[0]依然未定义a[0] = '8'a[0] // = > 8 但是注意类型的自动转换,当可被转换成数字时,JS会自动将其转成数值
DataView
既然本质是在操作二进制数据,那么就涉及到“高位优先”还是“低位优先”的数据传输问题……
今天太晚啦,明天接着码,未完待续~

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、HTML< Progress>について説明します。要素、その目的、スタイリング、および< meter>との違い要素。主な焦点は、< Progress>を使用することです。タスクの完了と< Meter> statiの場合

この記事では、HTML< Datalist>について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

この記事では、html< meter>について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化< Meter> < Progress>およびex

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

この記事では、html5< time>について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

この記事では、< iframe>外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。
