Baseline Widely available *
TypedArray ãªãã¸ã§ã¯ãã¯ãèå¾ã«ãããã¤ããªã¼ãã¼ã¿ãããã¡ã¼ã®ãé
å風ã®ãã¥ã¼ã表ãã¾ãã TypedArray
ã¨ããåç§°ã®ã°ãã¼ãã«ããããã£ãããããã§ã¯ãªããã¾ãç´æ¥ TypedArray
ã³ã³ã¹ãã©ã¯ã¿ã¼ãè¦ããããã§ã¯ããã¾ããã代ããã«ããã¾ãã¾ãªã°ãã¼ãã«ããããã£ãããããããã®å¤ã¯å¾è¿°ããããã«ç¹å®ã®è¦ç´ ã®åã«ãããåä»ãé
åã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã«ãªãã¾ããä¸è¨ã®ãã¼ã¸ã§ãããããã®è¦ç´ ãæã¤çå¼ãé
åã§ä½¿ç¨ã§ããå
±éã®ããããã£ãã¡ã½ããã確èªã§ãã¾ãã
// Create a TypedArray with a size in bytes
const typedArray1 = new Int8Array(8);
typedArray1[0] = 32;
const typedArray2 = new Int8Array(typedArray1);
typedArray2[1] = 42;
console.log(typedArray1);
// Expected output: Int8Array [32, 0, 0, 0, 0, 0, 0, 0]
console.log(typedArray2);
// Expected output: Int8Array [32, 42, 0, 0, 0, 0, 0, 0]
解説
TypedArray
ã³ã³ã¹ãã©ã¯ã¿ã¼ï¼ãã %TypedArray%
ã¨è¡¨è¨ããã¾ããJavaScript ããã°ã©ã ã«å
¬éãããã°ãã¼ãã«ã«å¯¾å¿ãããã®ãããããã§ã¯ãªãããããåå¥ã®ãã®ãã表ãããã§ãï¼ã¯ããã¹ã¦ã® TypedArray
ã®ãµãã¯ã©ã¹ã®å
±éã®ã¹ã¼ãã¼ã¯ã©ã¹ã¨ãã¦æ©è½ãã¾ãã%TypedArray%
ã¯ãã¹ã¦ã®åä»ãé
åã®ãµãã¯ã©ã¹ã«å¯¾ãã¦ã¦ã¼ãã£ãªãã£ã¡ã½ããã®å
±éã¤ã³ã¿ã¼ãã§ã¤ã¹ãæä¾ãããæ½è±¡ã¯ã©ã¹ãã§ããã¨èãã¦ãã ããããã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ç´æ¥å
¬éããã¦ãã¾ãããã°ãã¼ãã«ããããã£ã§ãã TypedArray
ããããã£ã¯åå¨ãã¾ãããObject.getPrototypeOf(Int8Array)
ãªã©ãéãã¦ã®ã¿ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ãã
TypedArray
ã®ãµãã¯ã©ã¹ï¼ä¾ãã° Int8Array
ï¼ã®ã¤ã³ã¹ã¿ã³ã¹ã使ããéãé
åãããã¡ã¼ãã¡ã¢ãªã¼ã«å
é¨ä½æãããããã³ã³ã¹ãã©ã¯ã¿ã¼ã®å¼æ°ã« ArrayBuffer
ãªãã¸ã§ã¯ããæå®ãããã¨ã代ããã«ãã® ArrayBuffer
ã使ç¨ãã¾ãããããã¡ã¼ã¢ãã¬ã¹ã¯ã¤ã³ã¹ã¿ã³ã¹ã®å
é¨ããããã£ã¨ãã¦ä¿åããã%TypedArray%.prototype
ã®ãã¹ã¦ã®ã¡ã½ããããã®é
åãããã¡ã¼ã¢ãã¬ã¹ã«åºã¥ãã¦å¤ãè¨å®ãããåå¾ããããã¾ãã
ãã¹ã¦ã®åä»ãé
å㯠ArrayBuffer
ãæä½ãã¦ãåè¦ç´ ã®æ£ç¢ºãªãã¤ã表ç¾ãè¦ããã¨ãã§ãã¾ãã®ã§ãæ°å¤ããã¤ããªã¼å½¢å¼ã§ã©ã®ããã«ã¨ã³ã³ã¼ãããã¦ããããéè¦ã§ãã
Uint8Array
, Uint16Array
, Uint32Array
, BigUint64Array
) ã¯ãæ°å¤ãç´æ¥ãã¤ããªã¼ã§æ ¼ç´ãã¾ããInt8Array
, Int16Array
, Int32Array
, BigInt64Array
) ã¯ãæ°å¤ã 2 ã®è£æ°ãç¨ãã¦æ ¼ç´ãã¾ããFloat16Array
, Float32Array
, Float64Array
) 㯠IEEE 754 æµ®åå°æ°ç¹å½¢å¼ã使ç¨ãã¦æ°å¤ãæ ¼ç´ãã¾ãã Number
ã®ãªãã¡ã¬ã³ã¹ã«ã¯ãæ£ç¢ºãªå½¢å¼ã«ã¤ãã¦ã®è©³ç´°æ
å ±ãããã¾ãã JavaScript ã®æ°å¤ã¯æ¢å®ã§ã¯å精度浮åå°æ°ç¹æ°ã§ã Float64Array
ã¨åãå½¢å¼ã使ç¨ãã¾ãã Float32Array
ã§ä»®æ°ã«ï¼52 ãããã®ä»£ããã«ï¼23 ããããææ°ã«ï¼11 ãããã®ä»£ããã«ï¼ 8 ãããã使ç¨ãã¾ããFloat16Array
ã§ä»®æ°ã« 10 ããããææ°ã« 5 ãããã使ç¨ãã¾ãã仿§ã§ã¯ããã¹ã¦ã® NaN
å¤ãåããããã¨ã³ã³ã¼ãæ¹å¼ã使ç¨ãããã¨ãè¦æ±ããã¦ãã¾ãããæ£ç¢ºãªããããã¿ã¼ã³ã¯å®è£
ã«ä¾åãããã¨ã«æ³¨æãã¦ãã ãããUint8ClampedArray
ã¯ç¹æ®ãªã±ã¼ã¹ã§ãããã㯠Uint8Array
ã¨åãããã«ãã¤ããªã¼ã§æ ¼ç´ããã¾ãããç¯å²å¤ã®æ°å¤ãæ ¼ç´ããå ´åãæä¸ä½ããããåãæ¨ã¦ãã®ã§ã¯ãªããæ°å¦çãªå¤ã§ 0 ãã 255 ã®ç¯å²ã«æ°å¤ã丸ãã¾ããInt8Array
ãUint8Array
ãUint8ClampedArray
ãé¤ããã¹ã¦ã®åä»ãé
åã¯ãåè¦ç´ ãè¤æ°ã®ãã¤ãã使ç¨ãã¦æ ¼ç´ãã¾ãããããã®ãã¤ãã¯ãæä¸ä½ããæä¸ä½ï¼ããã°ã¨ã³ãã£ã¢ã³ï¼ãã¾ãã¯æä¸ä½ããæä¸ä½ï¼ãªãã«ã¨ã³ãã£ã¢ã³ï¼ã®é ã«ä¸¦ã¹ããã¾ãã詳ãã説æã¯ã¨ã³ãã£ã¢ã³ãåç
§ãã¦ãã ãããåä»ãé
åã¯å¸¸ã«ãã©ãããã©ã¼ã ãã¤ãã£ãã®ãã¤ãé ã使ç¨ãã¾ãããããã¡ã¼ããèªã¿æ¸ãããéã«ã¨ã³ãã£ã¢ã³ãæå®ãããå ´åã¯ã代ããã« DataView
ã使ç¨ãã¦ãã ããã
ãããã®åä»ãé åã«æ¸ãè¾¼ãå ´åã表ç¾å¯è½ãªç¯å²å¤ã®å¤ã¯æ£è¦åããã¾ãã
Uint8ClampedArray
ãé¤ãï¼ã¯åºå®å¹
ã®æ°å¤å¤æã使ç¨ãã¾ããUint8ClampedArray
ã¯ãæåã«æ°å¤ã 0 ãã 255 ã®ç¯å²ã«åãã¾ãï¼255 ãã大ããå¤ã¯ 255 ã«ãªãã0 ããå°ããå¤ã¯ 0 ã«ãªãã¾ãï¼ãããã¦ãï¼åãæ¨ã¦ãã®ã§ã¯ãªãï¼æãè¿ãæ´æ°ã«ä¸¸ãã¾ããã¤ã¾ãã 2 ã¤ã®æ´æ°ã®ã¡ããã©ä¸éã«ããå ´åã¯ãæãè¿ãå¶æ°ã®æ´æ°ã«ä¸¸ãã¾ããä¾ãã°ã0.5
㯠0
ã1.5
㯠2
ã2.5
㯠2
ã¨ãªãã¾ããFloat16Array
ããã³ Float32Array
ã§ã¯ "round to even" ãè¡ãã 64 ãããæµ®åå°æ°ç¹æ°ã 32 ãããããã³ 16 ãããã«å¤æãã¾ãããã㯠Math.fround()
ããã³ Math.f16round()
ã§æå®ãããã¢ã«ã´ãªãºã ã¨åãã§ãããµã¤ãºå¤æ´å¯è½ãªãããã¡ã¼ã®ãã¥ã¼ã¨ã㦠TypedArray
ã使ããå ´åãTypedArray
ãé·ãã追跡ããããæ§ç¯ããã¦ãããã©ããã«ãããåºç¤ã®ãããã¡ã¼ããµã¤ãºå¤æ´ããéã« TypedArray
ã®ãµã¤ãºã«æ§ã
ãªå½±é¿ãä¸ãã¾ãã
3ã¤ç®ã®å¼æ°ãé¤å¤ããããundefined
ãæ¸¡ããããã¦ãåºæã®ãµã¤ãºãæããªãåä»ãé
åã使ããå ´åãåä»ãé
å㯠é·ã追跡 ã¨ãªããå¾è
ã®ãµã¤ãºã夿´ãããã¨ãåºç¤ã¨ãªã buffer
ã«åããã¦èªåçã«ãµã¤ãºå¤æ´ããã¾ãã
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer);
console.log(float32.byteLength); // 8
console.log(float32.length); // 2
buffer.resize(12);
console.log(float32.byteLength); // 12
console.log(float32.length); // 3
åä»ãé
åã 3 ã¤ç®ã® length
弿°ã§å
·ä½çãªãµã¤ãºãæå®ãã¦ä½æããå ´åãå¾è
ã大ãããªã£ã¦ã buffer
ãæ ¼ç´ããããã«ãµã¤ãºã夿´ãããã¨ã¯ããã¾ããã
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer, 0, 2);
console.log(float32.byteLength); // 8
console.log(float32.length); // 2
console.log(float32[0]); // 0ï¼åæå¤ï¼
buffer.resize(12);
console.log(float32.byteLength); // 8
console.log(float32.length); // 2
console.log(float32[0]); // 0ï¼åæå¤ï¼
buffer
ã縮å°ãããã¨ããè¦ã¦ããåä»ãé
åãå¢çãè¶ãããã¨ãããããã®å ´åãåä»ãé
åã®ç£è¦ãµã¤ãºã¯ 0 ã«æ¸å°ãã¾ããããã¯ãé·ã追跡ãè¡ããªãåä»ãé
åã®é·ããå¤åããå¯ä¸ã®ã±ã¼ã¹ã§ãã
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer, 0, 2);
buffer.resize(7);
console.log(float32.byteLength); // 0
console.log(float32.length); // 0
console.log(float32[0]); // undefined
ãã®å¾ã buffer
ãåã³å¤§ãããã¦åä»ãé
åãå
ã«æ»ãã°ãåä»ãé
åã®ãµã¤ãºã¯å
ã®å¤ã«æ»ãã¾ãã
buffer.resize(8);
console.log(float32.byteLength); // 8
console.log(float32.length); // 2
console.log(float32[0]); // 0 - back in bounds again!
é·ã追跡åã®åä»ãé
åã§ãããããã¡ã¼ã byteOffset
ãè¶
ãã¦ç¸®å°ãããå ´åãåããã¨ãèµ·ããå¾ãï¼
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer, 4);
// float32 ã¯é·ãã追跡ãã¾ããã4 ãã¤ãç®ãããããã¡ã¼æ«å°¾ã¾ã§ãã
// æ¡å¼µããªãã®ã§ããããã¡ã¼ã 4 ãã¤ãããçããªãããã«ãªãµã¤ãºããã
// ã¨ãé
åã®åãç¯å²å¤ã«ãªã£ã¦ãã¾ãã¾ãã
buffer.resize(3);
console.log(float32.byteLength); // 0
ã³ã³ã¹ãã©ã¯ã¿ã¼
ãã®ãªãã¸ã§ã¯ãã¯ç´æ¥ã¤ã³ã¹ã¿ã³ã¹åã§ãã¾ãããnew
ã§æ§ç¯ãããã¨ãã㨠TypeError
ãçºçãã¾ãã
new (Object.getPrototypeOf(Int8Array))();
// TypeError: Abstract class TypedArray not directly constructable
ãã®ä»£ãããInt8Array
ã BigInt64Array
ã®ãããªç¹å®ã®ç¨®é¡ã®åä»ãé
åã®ã¤ã³ã¹ã¿ã³ã¹ã使ãã¦ãã ããããããã®ãªãã¸ã§ã¯ãã¯ããã¹ã¦ã³ã³ã¹ãã©ã¯ã¿ã¼ã«å
±éã®æ§æãæã£ã¦ãã¾ãã
new TypedArray()
new TypedArray(length)
new TypedArray(typedArray)
new TypedArray(object)
new TypedArray(buffer)
new TypedArray(buffer, byteOffset)
new TypedArray(buffer, byteOffset, length)
ããã§ TypedArray ã¯ç¹å®ã®åã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã®ãã¡ã®ä¸ã¤ã表ãã¾ãã
ã¡ã¢: ãã¹ã¦ã® TypedArray
ãµãã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ new
ã使ã£ã¦ã®ã¿æ§ç¯ãããã¨ãã§ãã¾ããnew
ãªãã§å¼ã³åºããã¨ãã㨠TypeError
ãçºçãã¾ãã
typedArray
TypedArray
ã®ãµãã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãæå®ãã¦å¼ã³åºãããã¨ãtypedArray
ãæ°ããåä»ãé
åã«ã³ãã¼ããã¾ããé·æ´æ°ä»¥å¤ã® TypedArray
ã³ã³ã¹ãã©ã¯ã¿ã¼ã§ã¯ãtypedArray
弿°ã«ã¯é·æ´æ°ä»¥å¤ã®åä»ãé
åã®ãã¡ã®ããããï¼Int32Array
ãªã©ï¼ãæå®ãã¾ããåæ§ã«ãé·æ´æ°ã® TypedArray
ã³ã³ã¹ãã©ã¯ã¿ã¼ï¼BigInt64Array
ã¾ã㯠BigUint64Array
ï¼ã§ã¯ãtypedArray
弿°ã«ã¯é·æ´æ°åã®ããããããæå®ã§ãã¾ãããtypedArray
ã®åå¤ã¯ãæ°ããé
åã«ã³ãã¼ãããåã«ã³ã³ã¹ãã©ã¯ã¿ã¼ã®å¯¾å¿ããåã«å¤æããããæ°ããåä»ãé
åã®é·ã㯠typedArray
ã®å¼æ°ã®é·ãã¨åãã«ãªãã¾ãã
object
TypedArray
ã¤ã³ã¹ã¿ã³ã¹ã§ãªããªãã¸ã§ã¯ãã§å¼ã³åºãããå ´åãTypedArray.from()
ã¡ã½ããã¨åãæ¹æ³ã§ãæ°ããåä»ãé
åãçæãã¾ãã
length
çç¥å¯
ãªãã¸ã§ã¯ã以å¤ã§å¼ã³åºãããå ´åã弿°ã¯åä»ãé
åã®é·ããæå®ããæ°å¤ã¨ãã¦æ±ããã¾ããå
é¨é
åãããã¡ã¼ãã¡ã¢ãªã¼å
ã«ä½æããããµã¤ãºã¯ length
ã« BYTES_PER_ELEMENT
ãã¤ããä¹ãããã®ã¨ãªãã0 ã§æºãããã¾ãããã¹ã¦ã®å¼æ°ãé¤å¤ããã¨ã0
ã length
ã¨ãã¦ä½¿ç¨ãããã¨ã¨åãã«ãªãã¾ãã
buffer
, byteOffset
çç¥å¯, length
çç¥å¯
ArrayBuffer
ã¾ã㯠SharedArrayBuffer
ã¤ã³ã¹ã¿ã³ã¹ãæå®ããããã« byteOffset
ããã³ length
弿°ãä»ãã¦å¼ã³åºãã¨ãæå®ãããããã¡ã¼ãåç
§ããåä»ãé
åãã¥ã¼ãæ°ãã«ä½æãããã¨ãã§ãã¾ããbyteOffset
ï¼ãã¤ãåä½ï¼ã¨ length
ï¼è¦ç´ æ°ã§ãããããã BYTES_PER_ELEMENT
ãã¤ããå ãã¾ãï¼ã®å¼æ°ã¯ãåä»ãé
åãã¥ã¼ãåç
§ããã¡ã¢ãªã¼ç¯å²ãæå®ãã¾ãã両æ¹ã¨ãçç¥ããå ´åãbuffer
ã®å
¨ä½ãåç
§ããã¾ããlength
ã®ã¿ãçç¥ãããå ´åãbuffer
ã® byteOffset
以éã®é¨åã表示ããã¾ããlength
ãçç¥ãããå ´åãåä»ãé
åã¯é·ã追跡ã¨ãªãã¾ãã
ãã¹ã¦ã® TypeArray
ãµãã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ãåãããã«æä½ãã¾ãããã¹ã¦ã§ä»¥ä¸ã®ãããªä¾å¤ãçºçãããã¨ãããã¾ãã
TypeError
以ä¸ã®ããããã®å ´åã«çºçãã¾ãã
typedArray
ãæ¸¡ãããããç¾å¨ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã¨ã¯ç°ãªãé·æ´æ°åã®ãã®ã§ãã£ãå ´åãã¾ãã¯ãã®éãtypedArray
ãæ¸¡ããããããã®ãããã¡ã¼ãåé¢ããã¦ããå ´åãã¾ãã¯åé¢ããã buffer
ãç´æ¥æ¸¡ãããå ´åãRangeError
以ä¸ã®ããããã®å ´åã«çºçãã¾ãã
buffer
ï¼length
弿°ãæå®ããªãå ´åï¼ã¾ã㯠byteOffset
ã®é·ãããæ°ããåä»ãé
åã®è¦ç´ ãµã¤ãºã®æ´æ°åã§ãªããbyteOffset
ãæå¹ãªé
åã¤ã³ããã¯ã¹ï¼0 ãã 253 - 1 ã®éã®æ´æ°ï¼ã§ãªããbyteOffset + length * TypedArray.BYTES_PER_ELEMENT > buffer.byteLength
ã¨ãªãããããã®ããããã£ã¯ TypedArray
ã³ã³ã¹ãã©ã¯ã¿ã¼ãªãã¸ã§ã¯ãã§å®ç¾©ããã¦ããããããã£ã¦ãã¹ã¦ã® TypedArray
ãµãã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã§å
±æããã¾ãã
TypedArray[Symbol.species]
æ´¾çãªãã¸ã§ã¯ãã使ããããã«ä½¿ç¨ãããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§ãã
ãã¹ã¦ã® TypedArray
ãµãã¯ã©ã¹ã«ã¯ä»¥ä¸ã®éçããããã£ãããã¾ãã
TypedArray.BYTES_PER_ELEMENT
ãã¾ãã¾ãª TypedArray
ã¤ã³ã¹ã¿ã³ã¹ã®è¦ç´ ã®ãµã¤ãºãæ°å¤ã§è¿ãã¾ãã
ãããã®ã¡ã½ãã㯠TypedArray
ã³ã³ã¹ãã©ã¯ã¿ã¼ãªãã¸ã§ã¯ãã«å®ç¾©ããã¦ããããããã¹ã¦ã® TypedArray
ã®ãµãã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã«å
±æããã¾ãã
TypedArray.from()
é
å風ãªãã¸ã§ã¯ããå復å¯è½ãªãã¸ã§ã¯ããããæ°ã㪠TypedArray
ãçæãã¾ããArray.from()
ãã覧ãã ããã
TypedArray.of()
弿°ã«ä¸ããå¤ããã¨ã«ãæ°ã㪠TypedArray
ãçæãã¾ããArray.of()
ãã覧ãã ããã
ãããã®ããããã£ã¯ TypedArray.prototype
ãªãã¸ã§ã¯ãã§å®ç¾©ããã¦ããããã¹ã¦ã® TypedArray
ã®ãµãã¯ã©ã¹ã¤ã³ã¹ã¿ã³ã¹ã§å
±æããã¦ãã¾ãã
TypedArray.prototype.buffer
ãã®åä»ãé
åã«ãã£ã¦åç
§ãã¦ãã ArrayBuffer
ãè¿ãã¾ãã
TypedArray.prototype.byteLength
åä»ãé åã®é·ãã (ãã¤ãåä½ã§) è¿ãã¾ãã
TypedArray.prototype.byteOffset
åä»ãé
åã® ArrayBuffer
ã®å
é ããã®ãªãã»ããã (ãã¤ãåä½ã§) è¿ãã¾ãã
TypedArray.prototype.constructor
ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ãã使ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§ããTypedArray.prototype.constructor
ã¯é ããã TypedArray
ã®ã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§ãããåä»ãé
åã®ãµãã¯ã©ã¹ã¯ãããã constructor
ããããã£ãå®ç¾©ãã¦ãã¾ãã
TypedArray.prototype.length
åä»ãé åå ã«ä¿æãããè¦ç´ ã®æ°ãè¿ãã¾ãã
TypedArray.prototype[Symbol.toStringTag]
TypedArray.prototype[Symbol.toStringTag]
ããããã£ã®åæå¤ã¯ã²ãã¿ã¼ã§ãåä»ãé
åã®ã®ã³ã³ã¹ãã©ã¯ã¿ã¼åã¨åãæååãè¿ãã¾ãããã®ããããã£ã¯ this
ã®å¤ãåä»ãé
åã®ãµãã¯ã©ã¹ã®ãããã§ããªãå ´åã undefined
ãè¿ãã¾ãããã®ããããã£ã¯ Object.prototype.toString()
ã§ä½¿ç¨ããã¾ãããã ããTypedArray
ã¯ç¬èªã® toString()
ã¡ã½ãããæã£ã¦ããã®ã§ããã®ããããã£ã¯Object.prototype.toString.call()
ã thisArg
ã«åä»ãé
åãè¨å®ãã¦å¼ã³åºå·®ãªãéãããã®ããããã£ã®ä½¿ç¨ããã¾ããã
ãã¹ã¦ã® TypedArray
ã®ãµãã¯ã©ã¹ã«ã¯ã以ä¸ã®ã¤ã³ã¹ã¿ã³ã¹ããããã£ãããã¾ãã
TypedArray.prototype.BYTES_PER_ELEMENT
æ§ã
㪠TypedArray
ã¤ã³ã¹ã¿ã³ã¹ã®è¦ç´ ã®å¤§ãããæ°å¤ã§è¿ãã¾ãã
ãããã®ã¡ã½ãã㯠TypedArray
ãããã¿ã¤ããªãã¸ã§ã¯ãã«å®ç¾©ããã¦ããããããã¹ã¦ã® TypedArray
ãµãã¯ã©ã¹ã¤ã³ã¹ã¿ã³ã¹ã§å
±æããã¾ãã
TypedArray.prototype.at()
æ´æ°å¤ãåãåãããã®ä½ç½®ã«ããã¢ã¤ãã ãè¿ãã¾ãããã®ã¡ã½ããã§ã¯è² ã®æ´æ°ãæ±ããã¨ãã§ããæå¾ã®é ç®ããéåãã«æ°ãã¾ãã
TypedArray.prototype.copyWithin()
é
åå
ã§ä¸é£ã®é
åè¦ç´ ãã³ãã¼ãã¾ãã Array.prototype.copyWithin()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.entries()
é
åå
ã®ãã¹ã¦ã®ä½ç½®ã«å¯¾ãããã¼ï¼å¤ã®çµãå«ããæ°ããé
åã¤ãã¬ã¼ã¿ã¼ãè¿ãã¾ãã Array.prototype.entries()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.every()
é
åå
ã®ãã¹ã¦ã®è¦ç´ ã颿°ã«ãã£ã¦æä¾ããããã¹ãã«åæ ¼ãããã©ãããã¹ããå®è¡ãã¾ãã Array.prototype.every()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.fill()
éå§ä½ç½®ããçµäºä½ç½®ã¾ã§ã®ãã¹ã¦ã®è¦ç´ ã«åºå®å¤ãè¨å®ãã¾ãã Array.prototype.fill()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.filter()
ä¸ãããããã£ã«ã¿ãªã³ã°é¢æ°ã true
ãè¿ãé
åã®ãã¹ã¦ã®è¦ç´ ããã¤æ°ããé
åãçæãã¾ãã Array.prototype.filter()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.find()
é
åè¦ç´ ãä¸ãããããã¹ã颿°ãæºè¶³ããããé
åã®å¤ãè¿ãã¾ããæºè¶³ããªãã£ãå ´åã undefined
ãè¿ãã¾ãã Array.prototype.find()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.findIndex()
é
åè¦ç´ ãä¸ãããããã¹ã颿°ãæºè¶³ããããé
åã®ã¤ã³ããã¯ã¹ãè¿ãã¾ããæºè¶³ããªãã£ãå ´å㯠-1
ãè¿ãã¾ããArray.prototype.findIndex()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.findLast()
æå®ããããã¹ã颿°ãæºããé
åã®æå¾ã®è¦ç´ ã®å¤ãè¿ããé©åãªè¦ç´ ãå¾ãããªãã£ãå ´å㯠undefined
ãè¿ãã¾ããArray.prototype.findLast()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.findLastIndex()
æå®ããããã¹ã颿°ãæºããé
åã®æå¾ã®è¦ç´ ã®ã¤ã³ããã¯ã¹ãè¿ããé©åãªè¦ç´ ãè¦ã¤ãããªãã£ãå ´å㯠-1
ãè¿ãã¾ããArray.prototype.findLastIndex()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.forEach()
é
åå
ã®åè¦ç´ ã«å¯¾ãã颿°ãå¼ã³åºãã¾ãã Array.prototype.forEach()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.includes()
åä»ãé
åã«ããè¦ç´ ãå«ã¾ãã¦ãããã©ãã夿ããããã«å¿ã㦠true
ã¾ã㯠false
ãè¿ãã¾ãã Array.prototype.includes()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.indexOf()
æå®ãããå¤ã«çããé
åå
ã®è¦ç´ ã®æåã®ä½ç½®ãè¿ãã¾ããè¦ã¤ãããªãã£ãå ´å㯠-1
ãè¿ãã¾ãã Array.prototype.indexOf()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.join()
ãã¹ã¦ã®é
åè¦ç´ ã 1 ã¤ã®æååã«çµåãã¾ãã Array.prototype.join()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.keys()
é
åå
ã®ããããã®ä½ç½®ã«å¯¾ãããã¼ãå«ãæ°ããé
åã¤ãã¬ã¼ã¿ã¼ãè¿ãã¾ãã Array.prototype.keys()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.lastIndexOf()
æå®ãããå¤ã¨çããé
åã®è¦ç´ ã®æå¾ã®ä½ç½®ãè¿ãã¾ããè¦ã¤ãããªãå ´å㯠-1
ãè¿ãã¾ããArray.prototype.lastIndexOf()
ã確ããã¦ä¸ããã
TypedArray.prototype.map()
ãã®é
åã®ãã¹ã¦ã®è¦ç´ ã§ä¸ãããã颿°ãå¼ã³åºããçµæããã¤æ°ããé
åãçæãã¾ããArray.prototype.map()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.reduce()
ã¢ãã¥ã¼ã ã¬ã¼ã¿ã¼ã¨é
åã®ããããã®å¤ï¼å·¦ããå³ã¸ï¼ã«å¯¾ãã¦é¢æ°ãé©ç¨ããåä¸ã®å¤ã«ã¾ã§ç¸®å°ãã¾ãã Array.prototype.reduce()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.reduceRight()
ã¢ãã¥ã¼ã ã¬ã¼ã¿ã¼ã¨é
åã®ããããã®å¤ï¼å³ããå·¦ã¸ï¼ã«å¯¾ãã¦é¢æ°ãé©ç¨ããåä¸ã®å¤ã«ã¾ã§ç¸®å°ãã¾ãã Array.prototype.reduce()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.reverse()
é
åè¦ç´ ã®é çªãå転ããã¾ãã â æåã®è¦ç´ ã¯æå¾ã«ãªããæå¾ã®è¦ç´ ã¯æåã«ãªãã¾ãã Array.prototype.reverse()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.set()
å ¥åå¤ãæå®ããé åããèªã¿è¾¼ã¿ãåä»ãé åå ã«è¤æ°ã®å¤ãæ ¼ç´ãã¾ãã
TypedArray.prototype.slice()
é
åã®ä¸é¨ãåãåºãã¦æ°ããé
åãè¿ãã¾ãã Array.prototype.slice()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.some()
ããé
åã®å°ãªãã¨ã 1 ã¤ã®è¦ç´ ãä¸ãããããã¹ã颿°ãæºãããå ´åã« true
ãè¿ãã¾ãã Array.prototype.some()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.sort()
é
åã®è¦ç´ ãã½ã¼ããããã®çµæãè¿ãã¾ãã Array.prototype.sort()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.subarray()
ä¸ããããéå§ä½ç½®ã¨çµäºä½ç½®ã®è¦ç´ ã¤ã³ããã¯ã¹ãããæ°ãã TypedArray
ãè¿ãã¾ãã
TypedArray.prototype.toLocaleString()
é
åã¨è¦ç´ ã表ããã¼ã«ã©ã¤ãºãããæååãè¿ãã¾ãã Array.prototype.toLocaleString()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.toReversed()
å ã®é åã夿´ããã«ãè¦ç´ ãéé ã«ä¸¦ã¹ãæ°ããé åãè¿ãã¾ãã
TypedArray.prototype.toSorted()
å ã®é åã夿´ããã«ãè¦ç´ ãæé ã«ä¸¦ã¹ãæ°ããé åãè¿ãã¾ãã
TypedArray.prototype.toString()
é
åã¨è¦ç´ ã表ãæååãè¿ãã¾ãã Array.prototype.toString()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.values()
é
åå
ã®ããããã®ä½ç½®ã«å¯¾ããå¤ãå«ãæ°ããé
åã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã Array.prototype.values()
ãåç
§ãã¦ãã ããã
TypedArray.prototype.with()
æå®ãããä½ç½®ã®è¦ç´ ãæå®ãããå¤ã§ç½®ãæããæ°ããé åããå ã®é åã«å¤æ´ãå ãããã¨ãªãè¿ãã¾ãã
TypedArray.prototype[Symbol.iterator]()
é åå ã§ããããã®ä½ç½®ã«å¯¾ããå¤ãå«ãæ°ããé åã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
é
åå
ã®è¦ç´ ã¯ãæ¨æºã®é
åã®æ·»åæ§æ (ããªãã¡ãããæ¬å¼§ã使ç¨ãã表è¨) ã使ç¨ãã¦åç
§ãããã¨ãã§ãã¾ããããããåä»ãé
åã§ã¤ã³ããã¯ã¹ä»ãããããã£ã§åå¾ã¾ãã¯è¨å®ããã¨ãã¯ãç¯å²å¤ã®ã¤ã³ããã¯ã¹ã§ãããããã£ã®ãããã¿ã¤ããã§ã¼ã³ãæ¢ç´¢ãã¾ãããã¤ã³ããã¯ã¹ä»ãããããã£ã¯ ArrayBuffer
ã調ã¹ãã®ã§ããããªãã¸ã§ã¯ãã®ããããã£ã¯æ¢ç´¢ãã¾ãããä»ã®ãªãã¸ã§ã¯ãåæ§ã«ãååä»ãããããã£ã¯ä½¿ç¨ã§ãã¾ãã
// æ¨æºçãªé
åæ§æã使ç¨ãã¦è¨å®ããã³åå¾
const int16 = new Int16Array(2);
int16[0] = 42;
console.log(int16[0]); // 42
// ãããã¿ã¤ãã§ã¤ã³ããã¯ã¹ä»ãé
åã使ç¨ãã¦ãæ¢ç´¢ããªã (Fx 25)
Int8Array.prototype[20] = "foo";
new Int8Array(32)[20]; // 0
// even when out of bound
Int8Array.prototype[20] = "foo";
new Int8Array(8)[20]; // undefined
// or with negative integers
Int8Array.prototype[-1] = "foo";
new Int8Array(8)[-1]; // undefined
// ååä»ãããããã£ãå©ç¨ã§ãã (Fx 30)
Int8Array.prototype.foo = "bar";
new Int8Array(32).foo; // "bar"
åçµã§ããªã
空ã§ãªã TypedArray
ã¯åçµãããã¨ãã§ãã¾ããããã®åºç¤ã§ãã ArrayBuffer
ã¯ãã®ãããã¡ã¼ã®å¥ã® TypedArray
ãã¥ã¼ãéãã¦å¤æ´ãããå¯è½æ§ãããããã§ããããã¯ãªãã¸ã§ã¯ããç´ç²ã«åçµããããã¨ããªããã¨ãæå³ãã¦ãã¾ãã
const i8 = Int8Array.of(1, 2, 3);
Object.freeze(i8);
// TypeError: Cannot freeze array buffer views with elements
ByteOffset ã¯æ£è¦åããå¿
è¦ããã
ArrayBuffer
ã«ãã¥ã¼ã¨ã㦠TypedArray
ãæ§ç¯ããå ´åãbyteOffset
弿°ã¯è¦ç´ ãµã¤ãºã®å¢çã«é
ç½®ããå¿
è¦ãããã¾ããè¨ãæããã°ããªãã»ãã㯠BYTES_PER_ELEMENT
ã®åæ°ã§ãªããã°ãªãã¾ããã
const i32 = new Int32Array(new ArrayBuffer(4), 1);
// RangeError: start offset of Int32Array should be a multiple of 4
const i32 = new Int32Array(new ArrayBuffer(4), 0);
ByteLength ã¯æ£è¦åããå¿
è¦ããã
byteOffset
弿°ã¨åæ§ã«ãTypedArray
ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã«æ¸¡ããã ArrayBuffer
ã® byteLength
ããããã£ããã³ã³ã¹ãã©ã¯ã¿ã¼ã® BYTES_PER_ELEMENT
ã®åæ°ã«ããå¿
è¦ãããã¾ãã
const i32 = new Int32Array(new ArrayBuffer(3));
// RangeError: byte length of Int32Array should be a multiple of 4
const i32 = new Int32Array(new ArrayBuffer(4));
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4