The Uint16Array typed array represents an array of 16-bit unsigned integers in the platform byte order. If control over byte order is needed, use DataView instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).
new Uint16Array(); // ES2017 新加入的
new Uint16Array(length);
new Uint16Array(typedArray);
new Uint16Array(object);
new Uint16Array(buffer [, byteOffset [, length]]);
获取有关构造函数语法和参数的更多信息,访问TypedArray。
Uint16Array.BYTES_PER_ELEMENT2 in the case of an Uint16Array.Uint16Array.prototype.length.Uint16Array.nameUint16Array type: "Uint16Array".Uint16Array.prototypeUint16Array.from()Uint16Array from an array-like or iterable object. See also Array.from().Uint16Array.of()Uint16Array with a variable number of arguments. See also Array.of().Uint16Array prototypeAll Uint16Array objects inherit from %TypedArray%.prototype.
Uint16Array.prototype.constructorUint16Array constructor by default.Uint16Array.prototype.buffer 只读 ArrayBuffer referenced by the Uint16Array Fixed at construction time and thus read only.Uint16Array.prototype.byteLength 只读 Uint16Array from the start of its ArrayBuffer. Fixed at construction time and thus read only.Uint16Array.prototype.byteOffset 只读 Uint16Array from the start of its ArrayBuffer. Fixed at construction time and thus read only.Uint16Array.prototype.length 只读 Uint16Array. Fixed at construction time and thus read only.Uint16Array.prototype.copyWithin()Array.prototype.copyWithin().Uint16Array.prototype.entries()Array Iterator object that contains the key/value pairs for each index in the array. See also Array.prototype.entries().Uint16Array.prototype.every()Array.prototype.every().Uint16Array.prototype.fill()Array.prototype.fill().Uint16Array.prototype.filter()Array.prototype.filter().Uint16Array.prototype.find()undefined if not found. See also Array.prototype.find().Uint16Array.prototype.findIndex()Array.prototype.findIndex().Uint16Array.prototype.forEach()Array.prototype.forEach().Uint16Array.prototype.includes() true or false as appropriate. See also Array.prototype.includes().Uint16Array.prototype.indexOf()Array.prototype.indexOf().Uint16Array.prototype.join()Array.prototype.join().Uint16Array.prototype.keys()Array Iterator that contains the keys for each index in the array. See also Array.prototype.keys().Uint16Array.prototype.lastIndexOf()Array.prototype.lastIndexOf().Uint16Array.prototype.map()Array.prototype.map().Uint16Array.prototype.move() 未实现Uint16Array.prototype.copyWithin().Uint16Array.prototype.reduce()Array.prototype.reduce().Uint16Array.prototype.reduceRight()Array.prototype.reduceRight().Uint16Array.prototype.reverse()Array.prototype.reverse().Uint16Array.prototype.set()Uint16Array.prototype.slice()Array.prototype.slice().Uint16Array.prototype.some()Array.prototype.some().Uint16Array.prototype.sort()Array.prototype.sort().Uint16Array.prototype.subarray()Uint16Array from the given start and end element index.Uint16Array.prototype.values()Array Iterator object that contains the values for each index in the array. See also Array.prototype.values().Uint16Array.prototype.toLocaleString()Array.prototype.toLocaleString().Uint16Array.prototype.toString()Array.prototype.toString().Uint16Array.prototype[@@iterator]()Array Iterator object that contains the values for each index in the array.创建 Uint16Array的不同方法:
// From a length
var uint16 = new Uint16Array(2);
uint16[0] = 42;
console.log(uint16[0]); // 42
console.log(uint16.length); // 2
console.log(uint16.BYTES_PER_ELEMENT); // 2
// From an array
var arr = new Uint16Array([21,31]);
console.log(arr[1]); // 31
// From another TypedArray
var x = new Uint16Array([21, 31]);
var y = new Uint16Array(x);
console.log(y[0]); // 21
// From an ArrayBuffer
var buffer = new ArrayBuffer(8);
var z = new Uint16Array(buffer, 0, 4);
// From an iterable
var iterable = function*(){ yield* [1,2,3]; }();
var uint16 = new Uint16Array(iterable);
// Uint16Array[1, 2, 3]
| Specification | Status | Comment |
|---|---|---|
| Typed Array Specification | Obsolete | Superseded by ECMAScript 2015. |
| ECMAScript 2015 (6th Edition, ECMA-262) TypedArray constructors |
Standard | Initial definition in an ECMA standard. Specified that new is required. |
| ECMAScript Latest Draft (ECMA-262) TypedArray constructors |
Draft | ECMAScript 2017 changed the Uint16Array constructor to use the ToIndex operation and allows constructors with no arguments. |
| Desktop | Mobile | Server | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Uint16Array | Chrome Full support 7 | Edge Full support Yes | Firefox Full support 4 | IE Full support 10 | Opera Full support 11.6 | Safari Full support 5.1 | WebView Android Full support 4 | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support 11.6 | Safari iOS Full support 4.2 | Samsung Internet Android Full support Yes | nodejs Full support 0.10 |
Uint16Array() without new throws | Chrome Full support Yes | Edge Full support Yes | Firefox Full support 44 | IE No support No | Opera Full support Yes | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android Full support 44 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? | nodejs Full support 0.12 |
| Iterable in constructor | Chrome ? | Edge ? | Firefox Full support 52 | IE ? | Opera ? | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android Full support 52 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? | nodejs Full support 4.0.0 |
| Constructor without arguments | Chrome ? | Edge ? | Firefox Full support 55 | IE ? | Opera ? | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android Full support 55 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? | nodejs ? |
Starting with ECMAScript 2015, Uint16Array constructors require to be constructed with a new operator. Calling a Uint16Array constructor as a function without new, will throw a TypeError from now on.
var dv = Uint16Array([1, 2, 3]);
// TypeError: calling a builtin Uint16Array constructor
// without new is forbidden
var dv = new Uint16Array([1, 2, 3]);