جاوا اسکریپت تایپیز آپجائس مراجع دستاویز
- ਪਿਛਲਾ ਪੰਨਾ JS ਸਟੇਟਮੈਂਟ
- ਅਗਲਾ ਪੰਨਾ ویندو آپجائس
JavaScript 类型化数组
在 Javascript 中,类型化数组是二进制数据的类似数组的缓冲区。
不存在名为 TypedArray 的 JavaScript 属性或对象,但属性和方法可以与类型化数组对象一起使用:
实例
const myArr = new Int8Array(10);
类型化数组的对象
对象 | 数据类型 | 范围 |
---|---|---|
Int8Array | 有符号整数(字节) | -128/127 |
Uint8Array | 无符号整数(八位字节) | 0/255 |
Uint8ClampedArray | 无符号整数(八位字节) | 0/255 |
Int16Array | 短整数 | -32768/32767 |
Uint16Array | 无符号短整数 | 0/65535 |
Int32Array | 有符号长整数 | -231/231-1 |
Uint32Array | 无符号长整数 | 0/232 |
Float32Array | 浮点 - 7 位有效数字 | 1.2x10-38/3.4x1038 |
Float64Array | 双精度浮点 - 16 位有效数字 | 5.0x10-324/1.8x10308 |
BigInt64Array | 有符号大整数 | -263/263-1 |
BigUint64Array | 无符号大整数 | 0/264 |
说明
类型化数组不是数组。
类型化数组上的 isArray() 返回 false。
类型化数组不支持许多数组方法(如 push 和 pop)。
类型化数组是类似数组的对象,用于在内存中存储二进制数据。
Typed Array 方法和属性
方法 / 属性 | 描述 |
---|---|
BYTES_PER_ELEMENT | 计算用于存储一个元素的字节数的属性。 |
fill() | 用一个值填充所有元素。 |
find() | 返回满足条件的第一个元素。 |
name | 返回类型化数组的名称。 |
of() | 用数组创建类型化数组。 |
some() | 如果一个元素满足条件,则返回 true。 |
Uint8Array 对比 Uint8ClampedArray
Uint8Array 和 Uint8ClampedArray 之间的区别在于如何添加值。
如果将 Uint8ClampedArray 中的一个元素设置为 0-255 范围之外的值,它将默认为 0 或 255。
类型化数组将只取值的前 8 位。
类型化数组的好处
类型化数组提供了一种处理二进制数据的方法,就像在 C 中工作的数组一样有效。
类型化数组是原始内存,因此 JavaScript 可以将它们直接传递给任何函数,而无需将数据转换为另一种表示形式。
ਟਾਈਪਡ ਅਰਰੇ ਆਮ ਅਰਰੇ ਤੋਂ ਬਹੁਤ ਤੇਜ਼ ਹਨ, ਇਹ ਸਰਲ ਬਾਇਨਰੀ ਡਾਟਾ ਦੇ ਫੰਕਸ਼ਨਾਂ (ਕੰਪਿਊਟਰ ਗੇਮ, WebGL, Canvas, ਫਾਈਲ API, ਮੀਡੀਆ API) ਨੂੰ ਡਾਟਾ ਪਾਸ ਕਰਨ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਹਨ。
ਬਰਾਉਜ਼ਰ API ਟਾਈਪਡ ਅਰਰੇ ਸਪੋਰਟ ਕਰਦੀ ਹੈ
Fetch API ਇੰਸਟੈਂਸ
fetch(url) .then(request => request.arrayBuffer()) .then(arrayBuffer =>...);
Canvas ਇੰਸਟੈਂਸ
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) ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ。
ਸਾਰੇ ਆਧੁਨਿਕ ਬਰਾਉਜ਼ਰ ਏਸ6 (JavaScript 2015) ਨੂੰ ਸਮਰਥਨ ਕਰਦੇ ਹਨ。
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
ਹਾਂ | ਹਾਂ | ਹਾਂ | ਹਾਂ | ਹਾਂ |
Internet Explorer 11 (ਅਤੇ ਪੁਰਾਣੇ ਸੰਸਕਰਣ) ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ typedArray。
- ਪਿਛਲਾ ਪੰਨਾ JS ਸਟੇਟਮੈਂਟ
- ਅਗਲਾ ਪੰਨਾ ویندو آپجائس