在 Javascript 中,类型化数组是类似数组的二进制数据缓冲区。
没有名为 TypedArray 的 JavaScript 属性或对象,但属性和方法可以与类型化数组对象一起使用:
Object | Data Type | Range | 尝试一下 |
---|---|---|---|
Int8Array | Signed integer (byte) | -128/127 | 尝试一下 » |
Uint8Array | Unsigned integer (octet) | 0/255 | 尝试一下 » |
Uint8ClampedArray | Unsigned integer (octet) | 0/255 | 尝试一下 » |
Int16Array | Short integer | -32768/32767 | 尝试一下 » |
Uint16Array | Unsigned short integer | 0/65535 | 尝试一下 » |
Int32Array | Signed long integer | -231/231-1 | 尝试一下 » |
Uint32Array | Unsigned long integer | 0/232 | 尝试一下 » |
Float32Array | Float - 7 significant digits | 1.2x10-38/3.4x1038 | 尝试一下 » |
Float64Array | Double - 16 significant digits | 5.0x10-324/1.8x10308 | 尝试一下 » |
BigInt64Array | Big signed integer | -263/263-1 | 尝试一下 » |
BigUint64Array | Big unsigned integer | 0/264 | 尝试一下 » |
类型化数组不是数组。
类型化数组上的 isArray() 返回 false。
类型化数组不支持许多数组方法(如push 和pop)。
类型化数组是类似数组的对象,用于在内存中存储二进制数据。
Method / Property | Description | 尝试一下 |
---|---|---|
BYTES_PER_ELEMENT | Property to count the number of bytes used to store one element | 尝试一下 » |
fill() | Fill all elements with a value | 尝试一下 » |
find() | Returns the first element that satisfies a condition | 尝试一下 » |
name | Returns the name of the typed array | 尝试一下 » |
of() | Method to create a typed array from an array | 尝试一下 » |
some() | Reurns true if one element satisfies a condition | 尝试一下 » |
Uint8Array 和 Uint8ClampedArray 之间的区别在于如何添加值。
如果将 Uint8ClampedArray 中的一个元素设置为 0-255 范围之外的值,则它将默认为 0 或 255。
类型化数组仅采用值的前 8 位。
类型化数组提供了一种像 C 语言中数组一样高效地处理二进制数据的方法。
类型化数组是原始内存,因此 JavaScript 可以将它们直接传递给任何函数,而无需将数据转换为另一种表示形式。
类型化数组比普通数组要快得多,用于将数据传递给可以使用原始二进制数据的函数(计算机游戏、WebGL、Canvas、文件 API、媒体 API)。
fetch(url)
.then(request => request.arrayBuffer())
.then(arrayBuffer =>...);
const canvas = document.getElementById('my_canvas');
const context = canvas.getContext('2d');
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
const uint8ClampedArray = imageData.data;
typedArray
是 ECMAScript6 (ES6) 功能。
所有现代浏览器都支持 ES6 (JavaScript 2015):
Chrome | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes |
typedArray
Internet Explorer 11(或更早版本)不支持。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!