Uint8ClampedArray
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
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.prototype.length-
éæé¿åº¦å±æ§å¼ä¸º 0ã对äºå®é é¿åº¦ï¼å ç´ çæ°éï¼ï¼è§
Uint8ClampedArray.prototype.lengthã Uint8ClampedArray.prototype-
å忝 TypedArrayï¼ç±»ååæ°ç»ï¼å¯¹è±¡ã
éææ¹æ³
Uint8ClampedArray.from()-
ä»ä¸ä¸ªç±»æ°ç»æå¯æä¸¾å¯¹è±¡å建ä¸ä¸ªæ°ç
Uint8ClampedArrayãåè§Array.from()ã Uint8ClampedArray.of()-
éè¿ä¸ä¸ªå¯éæ°éåæ°æ¥å建ä¸ä¸ªæ°ç
Uint8ClampedArrayãåè§Array.of()ã
å®ä¾å±æ§
è¿ä»å
¶ç¶æ¥å£ TypedArray ç»§æ¿å®ä¾å±æ§ã
Uint8ClampedArray.prototype.constructor-
è¿åå建ä¸ä¸ªå®ä¾ååç彿°ãè¿æ¯
Uint8ClampedArrayé»è®¤çæé 彿°ã Uint8ClampedArray.prototype.bufferåªè¯»-
è¿åç±
Uint8ClampedArrayå¼ç¨çArrayBufferãå¨åå»ºæ¶æåºå®ä¸æ¥ï¼å æ¤åªè½è¯»åã Uint8ClampedArray.prototype.byteLengthåªè¯»-
è¿åä»
ArrayBufferå¼å§çUint8ClampedArrayçï¼åèçï¼é¿åº¦ãå¨åå»ºæ¶æåºå®ä¸æ¥ï¼å æ¤åªè½è¯»åã Uint8ClampedArray.prototype.byteOffsetåªè¯»-
è¿åä»
ArrayBufferå¼å§çUint8ClampedArrayçï¼åèçï¼åç§»ãå¨åå»ºæ¶æåºå®ä¸æ¥ï¼å æ¤åªè½è¯»åã Uint8ClampedArray.prototype.lengthåªè¯»-
è¿å
UintClamped8Arrayå ·æçå ç´ æ°éãå¨åå»ºæ¶æåºå®ä¸æ¥ï¼å æ¤åªè½è¯»åã
å®ä¾æ¹æ³
ä»å
¶ç¶æ¥å£ TypedArray ç»§æ¿å®ä¾æ¹æ³ã
示ä¾
å建ä¸ä¸ª 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]
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-typedarray-objects> |
æµè§å¨å ¼å®¹æ§
å ¼å®¹æ§æ³¨æäºé¡¹
ä» ECMAScript 2015 å¼å§ï¼ Uint8ClampedArray æé 彿°éè¦ç¨ä¸ä¸ª new æä½ç¬¦æ¥æå»ºãä»ç°å¨å¼å§ï¼ä¸ä½¿ç¨ new æ¥è°ç¨ä¸ä¸ª 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]);