Uint8Array 对象兼容IE10+
8 位无符号整数值的类型化数组。内容将初始化为 0。如果无法分配请求数目的字节,则将引发异常。
new Uint8Array(); // new in ES2017new Uint8Array(length);new Uint8Array(typedArray);//包括arraynew Uint8Array(object);new Uint8Array(buffer [, byteOffset [, length]]);
uint8Array
必选。 Uint8Array 对象分配到的变量名称。
length
指定数组中元素的数目。
array
该数组中包含的数组(或类型化数组)。内容将初始化为给定数组或类型化数组的内容,且每个元素均转换为 Uint8 类型。
buffer
Uint8Array 表示的 ArrayBuffer。
byteOffset
可选。指定与 Uint8Array 将开始的缓冲区开始处的偏移量(以字节为单位)。
length
数组中的元素数。
下表列出了 Uint8Array 对象的常量。
常量 | 说明 |
|---|---|
BYTES_PER_ELEMENT 常量 | 数组中每个元素的大小(以字节为单位)。 |
下表列出了 Uint8Array 对象的常量。
属性 | 说明 |
|---|---|
buffer 属性 | 只读。获取此数组引用的 ArrayBuffer。 |
byteLength 属性 | 只读。此数组距离其 ArrayBuffer 开始处的长度(以字节为单位),在构造时已固定。 |
byteOffset 属性 | 只读。此数组与其 ArrayBuffer 开始处的偏移量(以字节为单位),在构造时已固定。 |
length 属性 | 数组的长度。 |
下表列出了 Uint8Array 对象的方法。
方法 | 说明 |
|---|---|
set 方法 (Uint8Array) | 设置值或值数组。 |
subarray 方法 (Uint8Array) | 为此数组获取 ArrayBuffer 存储的新 Uint8Array 视图。 |
以下示例演示如何使用 Uint8Array 对象处理从 XmlHttpRequest 获取的二进制数据:
var req = new XMLHttpRequest(); req.open('GET', "http://www.example.com"); req.responseType = "arraybuffer"; req.send(); req.onreadystatechange = function () { if (req.readyState === 4) { var buffer = req.response; var dataview = new DataView(buffer); var ints = new Uint8Array(buffer.byteLength); for (var i = 0; i ints.length; i++) { ints[i] = dataview.getUint8(i); } alert(ints[10]); } }要求
在以下文档模式中受支持:Internet Explorer 10 标准模式和 Internet Explorer 11 标准模式。此外,也在应用商店应用(Windows 8 和 Windows Phone 8.1)中受支持。请参阅版本信息。
在以下文档模式中不受支持:Quirks、Internet Explorer 6 标准模式、Internet Explorer 7 标准模式、Internet Explorer 8 标准模式、Internet Explorer 9 标准模式。
示例部分
创建的不同方法Uint8Array:
// From a lengthvar uint8 = new Uint8Array(2);uint8[0] = 42;console.log(uint8[0]); // 42console.log(uint8.length); // 2console.log(uint8.BYTES_PER_ELEMENT); // 1// From an arrayvar arr = new Uint8Array([21,31]);console.log(arr[1]); // 31// From another TypedArrayvar x = new Uint8Array([21, 31]);var y = new Uint8Array(x);console.log(y[0]); // 21// From an ArrayBuffervar buffer = new ArrayBuffer(8);var z = new Uint8Array(buffer, 1, 4);// From an iterable var iterable = function*(){ yield* [1,2,3]; }(); var uint8 = new Uint8Array(iterable); // Uint8Array[1, 2, 3]兼容性说明部分
从ECMAScript 2015开始,Uint8Array构造函数需要使用new运算符构造。将Uint8Array构造函数作为函数调用new,TypeError将从现在开始抛出。
var dv = Uint8Array([1, 2, 3]);// TypeError: calling a builtin Uint8Array constructor// without new is forbiddenvar dv = new Uint8Array([1, 2, 3]);原创文章请随便转载。愿和大家分享,并且一起进步。-- 江 coder
转载于:https://www.cnblogs.com/jiangxiaobo/p/6016431.html
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array














