The Uint8ClampedArray typed array represents an array of 8-bit unsigned integers clamped to 0-255; if you specified a value that is out of the range of [0,255], 0 or 255 will be set instead; if you specify a non-integer, the nearest integer will be set. 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 Uint8ClampedArray(); // new in ES2017 new Uint8ClampedArray(length); new Uint8ClampedArray(typedArray); new Uint8ClampedArray(object); new Uint8ClampedArray(buffer [, byteOffset [, length]]);
For more information about the constructor syntax and the parameters, see TypedArray.
Uint8ClampedArray.BYTES_PER_ELEMENT1 in the case of an Uint8ClampedArray.Uint8ClampedArray.prototype.length.Uint8ClampedArray.nameUint8ClampedArray type: "Uint8ClampedArray".Uint8ClampedArray.prototypeUint8ClampedArray.from()Uint8ClampedArray from an array-like or iterable object. See also Array.from().Uint8ClampedArray.of()Uint8ClampedArray with a variable number of arguments. See also Array.of().Uint8ClampedArray prototypeAll Uint8ClampedArray objects inherit from %TypedArray%.prototype.
Uint8ClampedArray.prototype.constructorUint8ClampedArray constructor by default.Uint8ClampedArray.prototype.buffer Read only
ArrayBuffer referenced by the Uint8ClampedArray Fixed at construction time and thus read only.Uint8ClampedArray.prototype.byteLength Read only
Uint8ClampedArray from the start of its ArrayBuffer. Fixed at construction time and thus read only.
Uint8ClampedArray.prototype.byteOffset Read only
Uint8ClampedArray from the start of its ArrayBuffer. Fixed at construction time and thus read only.
Uint8ClampedArray.prototype.length Read only
UintClamped8Array. Fixed at construction time and thus read only.
Uint8ClampedArray.prototype.copyWithin()Array.prototype.copyWithin().Uint8ClampedArray.prototype.entries()Array Iterator object that contains the key/value pairs for each index in the array. See also Array.prototype.entries().Uint8ClampedArray.prototype.every()Array.prototype.every().Uint8ClampedArray.prototype.fill()Array.prototype.fill().Uint8ClampedArray.prototype.filter()Array.prototype.filter().Uint8ClampedArray.prototype.find()undefined if not found. See also Array.prototype.find().Uint8ClampedArray.prototype.findIndex()Array.prototype.findIndex().Uint8ClampedArray.prototype.forEach()Array.prototype.forEach().Uint8ClampedArray.prototype.includes()
true or false as appropriate. See also Array.prototype.includes().Uint8ClampedArray.prototype.indexOf()Array.prototype.indexOf().Uint8ClampedArray.prototype.join()Array.prototype.join().Uint8ClampedArray.prototype.keys()Array Iterator that contains the keys for each index in the array. See also Array.prototype.keys().Uint8ClampedArray.prototype.lastIndexOf()Array.prototype.lastIndexOf().Uint8ClampedArray.prototype.map()Array.prototype.map().Uint8ClampedArray.prototype.move() Unimplemented
Uint8ClampedArray.prototype.copyWithin().Uint8ClampedArray.prototype.reduce()Array.prototype.reduce().Uint8ClampedArray.prototype.reduceRight()Array.prototype.reduceRight().Uint8ClampedArray.prototype.reverse()Array.prototype.reverse().Uint8ClampedArray.prototype.set()Uint8ClampedArray.prototype.slice()Array.prototype.slice().Uint8ClampedArray.prototype.some()Array.prototype.some().Uint8ClampedArray.prototype.sort()Array.prototype.sort().Uint8ClampedArray.prototype.subarray()Uint8ClampedArray from the given start and end element index.Uint8ClampedArray.prototype.values()Array Iterator object that contains the values for each index in the array. See also Array.prototype.values().Uint8ClampedArray.prototype.toLocaleString()Array.prototype.toLocaleString().Uint8ClampedArray.prototype.toString()Array.prototype.toString().Uint8ClampedArray.prototype[@@iterator]()Array Iterator object that contains the values for each index in the array.Different ways to create a Uint8ClampedArray:
// From a length
var uintc8 = new Uint8ClampedArray(2);
uintc8[0] = 42;
uintc8[1] = 1337;
console.log(uintc8[0]); // 42
console.log(uintc8[1]); // 255 (clamped)
console.log(uintc8.length); // 2
console.log(uintc8.BYTES_PER_ELEMENT); // 1
// From an array
var arr = new Uint8ClampedArray([21,31]);
console.log(arr[1]); // 31
// From another TypedArray
var x = new Uint8ClampedArray([21, 31]);
var y = new Uint8ClampedArray(x);
console.log(y[0]); // 21
// From an ArrayBuffer
var buffer = new ArrayBuffer(8);
var z = new Uint8ClampedArray(buffer, 1, 4);
// From an iterable
var iterable = function*(){ yield* [1,2,3]; }();
var uintc8 = new Uint8ClampedArray(iterable);
// Uint8ClampedArray[1, 2, 3]
| Specification | Status | Comment |
|---|---|---|
| Typed Array Specification | Obsolete | Superseded by ECMAScript 2015. |
| ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'TypedArray constructors' in that specification. | Standard | Initial definition in an ECMA standard. Specified that new is required. |
| ECMAScript Latest Draft (ECMA-262) The definition of 'TypedArray constructors' in that specification. | Draft | ECMAScript 2017 changed the Uint8ClampedArray constructor to use the ToIndex operation and allows constructors with no arguments. |
| Desktop | ||||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
| Basic support | 7 | Yes | 4 | 10 | 11.6 | 5.1 |
Uint8ClampedArray() without new throws |
Yes | Yes | 44 | No | Yes | ? |
| Iterable in constructor | ? | ? | 52 | ? | ? | ? |
| Constructor without arguments | ? | ? | 55 | ? | ? | ? |
| Mobile | |||||||
|---|---|---|---|---|---|---|---|
| Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
| Basic support | 4 | Yes | Yes | 4 | 11.6 | 4.2 | Yes |
Uint8ClampedArray() without new throws |
? | ? | ? | 44 | ? | ? | ? |
| Iterable in constructor | ? | ? | ? | 52 | ? | ? | ? |
| Constructor without arguments | ? | ? | ? | 55 | ? | ? | ? |
| Server | |
|---|---|
| Node.js | |
| Basic support | 0.10 |
Uint8ClampedArray() without new throws |
0.12 |
| Iterable in constructor | 4.0.0 |
| Constructor without arguments | ? |
Starting with ECMAScript 2015, Uint8ClampedArray constructors require to be constructed with a new operator. Calling a Uint8ClampedArray constructor as a function without new, will throw a TypeError from now on.
var dv = Uint8ClampedArray([1, 2, 3]); // TypeError: calling a builtin Uint8ClampedArray constructor // without new is forbidden
var dv = new Uint8ClampedArray([1, 2, 3]);
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray