Uint8ClampedArray

Uint8ClampedArray(8位无符号整型固定数组) 类型化数组表示一个由值固定在0-255区间的8位无符号整型组成的数组;如果你指定一个在 [0,255] 区间外的值,它将被替换为0或255;如果你指定一个非整数,那么它将被设置为最接近它的整数。(数组)内容被初始化为0。一旦(数组)被创建,你可以使用对象的方法引用数组里的元素,或使用标准的数组索引语法(即使用方括号标记)。

语法

new Uint8ClampedArray(length);
new Uint8ClampedArray(typedArray);
new Uint8ClampedArray(object);
new Uint8ClampedArray(buffer [, byteOffset [, length]]);

关于构造函数语法和参数的更多信息,参见 TypedArray

属性

Uint8ClampedArray.BYTES_PER_ELEMENT
返回元素大小的一个数值。对 Uint8ClampedArray 而言是1。
Uint8ClampedArray.length
静态长度属性值为0。对于实际长度(元素的数量),见 Uint8ClampedArray.prototype.length
Uint8ClampedArray.name
返回构造函数名的字符串值。对 Uint8ClampedArray 类型而言:"Uint8ClampedArray"。
Uint8ClampedArray.prototype
原型是 TypedArray (类型化数组)对象。

方法

Uint8ClampedArray.from()
从一个类数组或可枚举对象创建一个新的 Uint8ClampedArray。参见 Array.from()
Uint8ClampedArray.of()
通过一个可选数量参数来创建一个新的 Uint8ClampedArray。参见 Array.of()

Uint8ClampedArray 原型

所有的 Uint8ClampedArray 对象继承自 %TypedArray%.prototype

属性

Uint8ClampedArray.prototype.constructor
返回创建一个实例原型的函数。这是 Uint8ClampedArray 默认的构造函数。
Uint8ClampedArray.prototype.buffer 只读
返回由 Uint8ClampedArray 引用的 ArrayBuffer 。在创建时所固定下来,因此 只能读取
Uint8ClampedArray.prototype.byteLength 只读
返回从 ArrayBuffer 开始的 Uint8ClampedArray 的(字节的)长度。在创建时所固定下来,因此 只能读取
Uint8ClampedArray.prototype.byteOffset 只读
返回从 ArrayBuffer 开始的 Uint8ClampedArray 的(字节的)偏移。在创建时所固定下来,因此 只能读取
Uint8ClampedArray.prototype.length 只读
返回 UintClamped8Array 具有的元素数量。在创建时所固定下来,因此 只能读取

方法

Uint8ClampedArray.prototype.copyWithin()
复制数组内一段数组元素的序列。参见 Array.prototype.copyWithin()
Uint8ClampedArray.prototype.entries()
返回一个新的包含数组中每个索引对应的键/值对的数组迭代器对象。参见  Array.prototype.entries()
Uint8ClampedArray.prototype.every()
测试数组里的所有元素是否通过所提供的函数的测试。参见  Array.prototype.every()
Uint8ClampedArray.prototype.fill()
用一个固定值填充一个数组内的从起始索引到结束索引的全部元素。参见  Array.prototype.fill()
Uint8ClampedArray.prototype.filter()
由该数组中所有经所提供的筛选函数返回为 true 的元素创建一个新数组。参见 Array.prototype.filter()
Uint8ClampedArray.prototype.find()
如果数组里的一个元素符合所提供的测试函数则返回找到的这个值,如果没有找到则返回  undefined。参见  Array.prototype.find()
Uint8ClampedArray.prototype.findIndex()
如果数组里的一个元素符合所提供的测试函数则返回找到的索引,如果没有找到则返回 -1。参见  Array.prototype.findIndex()
Uint8ClampedArray.prototype.forEach()
对数组内的每个元素调用一个函数。参见  Array.prototype.forEach()
Uint8ClampedArray.prototype.includes()
确定一个类型化数组是否包含一个特定的元素,对应地返回  true 或  false。参见  Array.prototype.includes()
Uint8ClampedArray.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().
Uint8ClampedArray.prototype.join()
Joins all elements of an array into a string. See also Array.prototype.join().
Uint8ClampedArray.prototype.keys()
Returns a new Array Iterator that contains the keys for each index in the array. See also Array.prototype.keys().
Uint8ClampedArray.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().
Uint8ClampedArray.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().
Uint8ClampedArray.prototype.move() 未实现
Former non-standard version of Uint8ClampedArray.prototype.copyWithin().
Uint8ClampedArray.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().
Uint8ClampedArray.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().
Uint8ClampedArray.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().
Uint8ClampedArray.prototype.set()
Stores multiple values in the typed array, reading input values from a specified array.
Uint8ClampedArray.prototype.slice()
Extracts a section of an array and returns a new array. See also Array.prototype.slice().
Uint8ClampedArray.prototype.some()
Returns true if at least one element in this array satisfies the provided testing function. See also Array.prototype.some().
Uint8ClampedArray.prototype.sort()
Sorts the elements of an array in place and returns the array. See also Array.prototype.sort().
Uint8ClampedArray.prototype.subarray()
Returns a new Uint8ClampedArray from the given start and end element index.
Uint8ClampedArray.prototype.values()
Returns a new Array Iterator object that contains the values for each index in the array. See also Array.prototype.values().
Uint8ClampedArray.prototype.toLocaleString()
Returns a localized string representing the array and its elements. See also Array.prototype.toLocaleString().
Uint8ClampedArray.prototype.toString()
Returns a string representing the array and its elements. See also Array.prototype.toString().
Uint8ClampedArray.prototype[@@iterator]()
Returns a new Array Iterator object that contains the values for each index in the array.

实例

创建一个 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]

规范

规范 状态 注释
Typed Array Specification Obsolete 已由 ECMAScript 2015 替代。
ECMAScript 2015 (6th Edition, ECMA-262)
TypedArray constructors
Standard 最初定义在一份 ECMA 标准中。规定 new 是必需的。
ECMAScript Latest Draft (ECMA-262)
TypedArray constructors
Draft  

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

特性 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基础支持 7.0 4.0 (2) 11 (as of KB2929437) 11.6 5.1
需要使用 new ? 44 (44) ? ? ?
构造函数中可枚举 ? 52 (52) ? ? ?
特性 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基础支持 4.0 (Yes) 4.0 (2) (Yes) 11.6 4.2
需要使用 new ? ? 44.0 (44) ? ? ?
构造函数中可枚举 ? ? 52.0 (52) ? ? ?

兼容性注意事项

从 ECMAScript 2015 开始, Uint8ClampedArray 构造函数需要用一个 TypeError

var dv = Uint8ClampedArray([1, 2, 3]);
// TypeError: calling a builtin Uint8ClampedArray constructor
// without new is forbidden
var dv = new Uint8ClampedArray([1, 2, 3]);

参见