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_ELEMENT`
  返回元素大小的数值. `2` in the case of an `Uint16Array`.
Uint16Array.length
  Static length property whose value is 0. For the actual length (number of elements), see `Uint16Array.prototype.length`.
`Uint16Array.name`
  Returns the string value of the constructor name. In the case of the `Uint16Array` type: "Uint16Array".
`Uint16Array.prototype`
  Prototype for the TypedArray objects.

## Methods

`Uint16Array.from()`
  Creates a new `Uint16Array` from an array-like or iterable object. See also `Array.from()`.
`Uint16Array.of()`
  Creates a new `Uint16Array` with a variable number of arguments. See also `Array.of()`.

## `Uint16Array` prototype

All `Uint16Array` objects inherit from `%TypedArray%.prototype`.

### Properties

`Uint16Array.prototype.constructor`
  Returns the function that created an instance's prototype. This is the `Uint16Array` constructor by default.
`Uint16Array.prototype.buffer` 只读
  Returns the `ArrayBuffer` referenced by the `Uint16Array` Fixed at construction time and thus read only.
`Uint16Array.prototype.byteLength` 只读
  Returns the length (in bytes) of the `Uint16Array` from the start of its `ArrayBuffer`. Fixed at construction time and thus read only.
`Uint16Array.prototype.byteOffset` 只读
  Returns the offset (in bytes) of the `Uint16Array` from the start of its `ArrayBuffer`. Fixed at construction time and thus read only.
`Uint16Array.prototype.length` 只读
  Returns the number of elements hold in the `Uint16Array`. Fixed at construction time and thus read only.

### Methods

`Uint16Array.prototype.copyWithin()`
  Copies a sequence of array elements within the array. See also `Array.prototype.copyWithin()`.
`Uint16Array.prototype.entries()`
  Returns a new `Array Iterator` object that contains the key/value pairs for each index in the array. See also `Array.prototype.entries()`.
`Uint16Array.prototype.every()`
  Tests whether all elements in the array pass the test provided by a function. See also `Array.prototype.every()`.
`Uint16Array.prototype.fill()`
  Fills all the elements of an array from a start index to an end index with a static value. See also `Array.prototype.fill()`.
`Uint16Array.prototype.filter()`
  Creates a new array with all of the elements of this array for which the provided filtering function returns true. See also `Array.prototype.filter()`.
`Uint16Array.prototype.find()`
  Returns the found value in the array, if an element in the array satisfies the provided testing function or `undefined` if not found. See also `Array.prototype.find()`.
`Uint16Array.prototype.findIndex()`
  Returns the found index in the array, if an element in the array satisfies the provided testing function or -1 if not found. See also `Array.prototype.findIndex()`.
`Uint16Array.prototype.forEach()`
  Calls a function for each element in the array. See also `Array.prototype.forEach()`.
`Uint16Array.prototype.includes()`
  Determines whether a typed array includes a certain element, returning `true` or `false` as appropriate. See also `Array.prototype.includes()`.
`Uint16Array.prototype.indexOf()`
  Returns the first (least) index of an element within the array equal to the specified value, or -1 if none is found. See also `Array.prototype.indexOf()`.
`Uint16Array.prototype.join()`
  Joins all elements of an array into a string. See also `Array.prototype.join()`.
`Uint16Array.prototype.keys()`
  Returns a new `Array Iterator` that contains the keys for each index in the array. See also `Array.prototype.keys()`.
`Uint16Array.prototype.lastIndexOf()`
  Returns the last (greatest) index of an element within the array equal to the specified value, or -1 if none is found. See also `Array.prototype.lastIndexOf()`.
`Uint16Array.prototype.map()`
  Creates a new array with the results of calling a provided function on every element in this array. See also `Array.prototype.map()`.
`Uint16Array.prototype.move()` 未实现
  Former non-standard version of `Uint16Array.prototype.copyWithin()`.
`Uint16Array.prototype.reduce()`
  Apply a function against an accumulator and each value of the array (from left-to-right) as to reduce it to a single value. See also `Array.prototype.reduce()`.
`Uint16Array.prototype.reduceRight()`
  Apply a function against an accumulator and each value of the array (from right-to-left) as to reduce it to a single value. See also `Array.prototype.reduceRight()`.
`Uint16Array.prototype.reverse()`
  Reverses the order of the elements of an array — the first becomes the last, and the last becomes the first. See also `Array.prototype.reverse()`.
`Uint16Array.prototype.set()`
  Stores multiple values in the typed array, reading input values from a specified array.
`Uint16Array.prototype.slice()`
  Extracts a section of an array and returns a new array. See also `Array.prototype.slice()`.
`Uint16Array.prototype.some()`
  Returns true if at least one element in this array satisfies the provided testing function. See also `Array.prototype.some()`.
`Uint16Array.prototype.sort()`
  Sorts the elements of an array in place and returns the array. See also `Array.prototype.sort()`.
`Uint16Array.prototype.subarray()`
  Returns a new `Uint16Array` from the given start and end element index.
`Uint16Array.prototype.values()`
  Returns a new `Array Iterator` object that contains the values for each index in the array. See also `Array.prototype.values()`.
`Uint16Array.prototype.toLocaleString()`
  Returns a localized string representing the array and its elements. See also `Array.prototype.toLocaleString()`.
`Uint16Array.prototype.toString()`
  Returns a string representing the array and its elements. See also `Array.prototype.toString()`.
`Uint16Array.prototype[@@iterator]()`
  Returns a new `Array Iterator` object that contains the values for each index in the array.

## Examples

创建 `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]

## Specifications

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.

## Browser compatibility

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

Update compatibility data on GitHub

| Desktop | Mobile | Server
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | Safari on iOS | Samsung Internet | Node.js
`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 ?

### Legend

Full support
  Full support
No support
  No support
Compatibility unknown
  Compatibility unknown

## Compatibility notes

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]);

## See also

- JavaScript typed arrays
- `ArrayBuffer`
- `DataView`