Uint8Array 对象兼容IE10+
8 位无符号整数值的类型化数组。内容将初始化为 0。如果无法分配请求数目的字节,则将引发异常。
语法
new Uint8Array(); // new in ES2017 new Uint8Array(length); new Uint8Array(typedArray);//包括array new Uint8Array(object); new Uint8Array(buffer [, byteOffset [, length]]);
参数
uint8Array
必选。 Uint8Array 对象分配到的变量名称。
length
指定数组中元素的数目。
array
该数组中包含的数组(或类型化数组)。内容将初始化为给定数组或类型化数组的内容,且每个元素均转换为 Uint8 类型。
buffer
Uint8Array 表示的 ArrayBuffer。
byteOffset
可选。指定与 Uint8Array 将开始的缓冲区开始处的偏移量(以字节为单位)。
length
数组中的元素数。
常量
下表列出了 Uint8Array 对象的常量。
常量 | 说明 |
---|---|
数组中每个元素的大小(以字节为单位)。 |
属性
下表列出了 Uint8Array 对象的常量。
属性 | 说明 |
---|---|
只读。获取此数组引用的 ArrayBuffer。 | |
只读。此数组距离其 ArrayBuffer 开始处的长度(以字节为单位),在构造时已固定。 | |
只读。此数组与其 ArrayBuffer 开始处的偏移量(以字节为单位),在构造时已固定。 | |
数组的长度。 | |
方法
下表列出了 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 length
var uint8 = new Uint8Array(2);
uint8[0] = 42;
console.log(uint8[0]); // 42
console.log(uint8.length); // 2
console.log(uint8.BYTES_PER_ELEMENT); // 1
// From an array
var arr = new Uint8Array([21,31]);
console.log(arr[1]); // 31
// From another TypedArray
var x = new Uint8Array([21, 31]);
var y = new Uint8Array(x);
console.log(y[0]); // 21
// From an ArrayBuffer
var 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 forbidden
var 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