Uint8Array
Baseline
åºãå©ç¨å¯è½
*
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
* ãã®æ©è½ã®ä¸é¨ã¯ã対å¿ã¬ãã«ãç°ãªãå ´åãããã¾ãã
Uint8Array ã¯åä»ãé
åã§ã 8 ããã符å·ãªãæ´æ°å¤ã®é
åã表ãã¾ããåæåãã¼ã¿ãæç¤ºçã«ä¸ããããªãã£ãå ´åãä¸èº«ã¯ 0 ã§åæåããã¾ããçæãããã¨ãé
åå
ã®è¦ç´ ã¯ãã®ãªãã¸ã§ã¯ãã®ã¡ã½ããã使ç¨ããããé
åã®æ¨æºçãªæ·»åã®æ§æï¼ããªãã¡ããã©ã±ããè¨æ³ï¼ã使ç¨ããããã¦åç
§ãããã¨ãã§ãã¾ãã
Uint8Array ã¯éå
¬éã® TypedArray ã¯ã©ã¹ã®ãµãã¯ã©ã¹ã§ãã
解説
Uint8Array ã¯ãç¾æç¹ã§ã¯ä»ã®åä»ãé
åã«æ¯ã¹ã¦è¿½å ã®ã¡ã½ãããæã¤å¯ä¸ã® TypedArray ãµãã¯ã©ã¹ã§ããæ±ç¨ãã¤ãé
åã¨ããæ§è³ªã®ãããä»»æã®ãã¤ããªã¼ãã¼ã¿ã®å¦çã«æãé©ãã¦ãã¾ããããã¯ã Uint8Array ãã¼ã¿ã® 16 鲿ååããã³ base64 æååã¸ã®ä½æãã·ãªã¢ã©ã¤ãºã夿´ãè¡ã 2 種é¡ã®ã¡ã½ããã«å¯¾å¿ãã¦ãã¾ãã
Uint8Array.fromBase64()ãUint8Array.prototype.toBase64()ï½Uint8Array.prototype.setFromBase64()㯠base64 æååã®å¦çãè¡ãã 3 ãã¤ãåä½ã§ 4 æåï¼0â9, AâZ, aâz, "+", "/" ï¼ã¾ã㯠URL ã»ã¼ã base64 ã§ããã° "-" 㨠"_"ï¼ã®ãã¡ã®ããããï¼ã«ã¨ã³ã³ã¼ããã¾ããUint8Array.fromHex()ãUint8Array.prototype.toHex()ãUint8Array.prototype.setFromHex()㯠16 鲿ååã®å¦çãè¡ããããããã®ãã¤ãã 2 æåï¼0â9 ã¾ã㯠AâF ï¼å¤§æåå°æåã®åºå¥ãªãï¼ã®ããããï¼ã«ã¨ã³ã³ã¼ããã¾ãã
ã³ã³ã¹ãã©ã¯ã¿ã¼
Uint8Array()-
æ°ãã
Uint8Arrayãªãã¸ã§ã¯ããçæãã¾ãã
éçããããã£
親ã§ãã TypedArray ããç¶æ¿ããéçããããã£ãããã¾ãã
Uint8Array.BYTES_PER_ELEMENT-
è¦ç´ ã®å¤§ãããæ°å¤ã§è¿ãã¾ãã
Uint8Arrayã®å ´åã¯1ã§ãã
éçã¡ã½ãã
親ã§ãã TypedArray ããç¶æ¿ããéçã¡ã½ãããããã¾ãã
Uint8Array.fromBase64()-
base64 ã¨ã³ã³ã¼ããããæååããæ°ãã
Uint8Arrayãªãã¸ã§ã¯ãã使ãã¾ãã Uint8Array.fromHex()-
16 é²ã¨ã³ã³ã¼ããããæååããæ°ãã
Uint8Arrayãªãã¸ã§ã¯ãã使ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ããããã£
親ã§ãã TypedArray ããç¶æ¿ããã¤ã³ã¹ã¿ã³ã¹ããããã£ãããã¾ãã
ãããã®ããããã£ã¯ Uint8Array.prototype ã§å®ç¾©ããããã¹ã¦ã® Uint8Array ã¤ã³ã¹ã¿ã³ã¹ã§å
±æããã¾ãã
Uint8Array.prototype.BYTES_PER_ELEMENT-
è¦ç´ ã®å¤§ãããæ°å¤ã§è¿ãã¾ãã
Uint8Arrayã®å ´åã¯1ã§ãã Uint8Array.prototype.constructor-
ãã®ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ãã使ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ãUint8Array ã¤ã³ã¹ã¿ã³ã¹ã®å ´åãåæå¤ã¯
Uint8Arrayã³ã³ã¹ãã©ã¯ã¿ã¼ã§ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
親ã§ãã TypedArray ããç¶æ¿ããã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãããããã¾ãã
Uint8Array.prototype.setFromBase64()-
ãã®
Uint8Arrayãªãã¸ã§ã¯ãã«ã base64 ã¨ã³ã³ã¼ããããæååããåå¾ãããã¤ãåãæ ¼ç´ããèªã¿è¾¼ãã ãã¤ãæ°ã¨æ¸ãè¾¼ãã ãã¤ãæ°ã示ããªãã¸ã§ã¯ããè¿ãã¾ãã Uint8Array.prototype.setFromHex()-
ãã®
Uint8Arrayãªãã¸ã§ã¯ãã« 16 é²ã¨ã³ã³ã¼ããããæååããåå¾åå¾ãããã¤ãåãæ ¼ç´ããèªã¿è¾¼ãã ãã¤ãæ°ã¨æ¸ãè¾¼ãã ãã¤ãæ°ã示ããªãã¸ã§ã¯ããè¿ãã¾ãã Uint8Array.prototype.toBase64()-
ãã®
Uint8Arrayãªãã¸ã§ã¯ãã®ãã¼ã¿ã«åºã¥ãã¦ãbase64 ã¨ã³ã³ã¼ããããæååãè¿ãã¾ãã Uint8Array.prototype.toHex()-
ãã®
Uint8Arrayãªãã¸ã§ã¯ãã®ãã¼ã¿ã«åºã¥ãã¦ã16 é²ã¨ã³ã³ã¼ããããæååãè¿ãã¾ãã
ä¾
>æ§ã
ãªæ¹æ³ã§ Uint8Array ã使
// é·ããã
const uint8 = new Uint8Array(2);
uint8[0] = 42;
console.log(uint8[0]); // 42
console.log(uint8.length); // 2
console.log(uint8.BYTES_PER_ELEMENT); // 1
// é
åãã
const x = new Uint8Array([21, 31]);
console.log(x[1]); // 31
// ä»ã® TypedArray ãã
const y = new Uint8Array(x);
console.log(y[0]); // 21
// ArrayBuffer ãã
const buffer = new ArrayBuffer(8);
const z = new Uint8Array(buffer, 1, 4);
console.log(z.byteOffset); // 1
// å復å¯è½ãªãã¸ã§ã¯ããã
const iterable = (function* () {
yield* [1, 2, 3];
})();
const uint8FromIterable = new Uint8Array(iterable);
console.log(uint8FromIterable);
// Uint8Array [1, 2, 3]
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-typedarray-objects > |