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
æ¹æ³é½å°åºäºæ°ç»ç¼å²åºå°å设置åè·åå¼ã
Int8Array
-128 å° 127 1 8 ä½æç¬¦å·æ´åï¼è¡¥ç ï¼ byte
int8_t
Uint8Array
0 å° 255 1 8 使 ç¬¦å·æ´å octet
uint8_t
Uint8ClampedArray
0 å° 255 1 8 使 ç¬¦å·æ´åï¼ä¸å®å¨ 0 å° 255 ä¹é´ï¼ octet
uint8_t
Int16Array
-32768 å° 32767 2 16 ä½æç¬¦å·æ´åï¼è¡¥ç ï¼ short
int16_t
Uint16Array
0 å° 65535 2 16 使 ç¬¦å·æ´å unsigned short
uint16_t
Int32Array
-2147483648 å° 2147483647 4 32 ä½æç¬¦å·æ´åï¼è¡¥ç ï¼ long
int32_t
Uint32Array
0 å° 4294967295 4 32 使 ç¬¦å·æ´å unsigned long
uint32_t
Float32Array
-3.4E38
å° 3.4E38
å¹¶ä¸ 1.2E-38
æ¯æå°çæ£æ° 4 32 ä½ IEEE æµ®ç¹æ°ï¼7 ä½æææ°åï¼ä¾å¦ 1.234567
ï¼ unrestricted float
float
Float64Array
-1.8E308
å° 1.8E308
å¹¶ä¸ 5E-324
æ¯æå°çæ£æ° 8 64 ä½ IEEE æµ®ç¹æ°ï¼16 ä½æææ°åï¼ä¾å¦ 1.23456789012345
ï¼ unrestricted double
double
BigInt64Array
-263 å° 263 - 1 8 64 ä½æç¬¦å·æ´åï¼è¡¥ç ï¼ bigint
int64_t (signed long long)
BigUint64Array
0 å° 264 - 1 8 64 使 ç¬¦å·æ´å bigint
uint64_t (unsigned long long)
å¼ç¼ç 䏿 åå
ææçç±»ååæ°ç»é½æ¯åºäº ArrayBuffer
è¿è¡æä½çï¼ä½ å¯ä»¥åæ¤è§å¯å°æ¯ä¸ªå
ç´ çç¡®ååè表示ï¼å æ¤äºè¿å¶æ ¼å¼ä¸çæ°åç¼ç æ¹å¼å
·æéè¦æä¹ã
Uint8Array
ãUint16Array
ãUint32Array
å BigUint64Array
ï¼ç´æ¥ä»¥äºè¿å¶å½¢å¼å卿°åãInt8Array
ãInt16Array
ãInt32Array
å BigInt64Array
ï¼ä½¿ç¨äºè¿å¶è¡¥ç å卿°åãFloat32Array
å Float64Array
ï¼ä½¿ç¨ IEEE 754æµ®ç¹æ ¼å¼å卿°åãNumber
åèææ¡£ä¸æå
³äºç¡®åæ ¼å¼çæ´å¤ä¿¡æ¯ãJavaScript æ°åé»è®¤ä½¿ç¨åç²¾åº¦æµ®ç¹æ ¼å¼ï¼è¿ä¸ Float64Array
ç¸åãFloat32Array
å° 23ï¼è䏿¯ 52ï¼ä½ç¨äºå°¾æ°ï¼ä»¥å 8ï¼è䏿¯ 11ï¼ä½ç¨äºææ°ã请注æï¼è§èè¦æ±ææç NaN
å¼ä½¿ç¨ç¸åçä½ç¼ç ï¼ä½ç¡®åç使¨¡å¼åå³äºå®ç°ãUint8ClampedArray
æ¯ä¸ç§ç¹æ®æ
åµãå®å Uint8Array
䏿 ·ä»¥äºè¿å¶å½¢å¼å卿°åï¼ä½æ¯å½ä½ åå¨è¶
åºèå´çæ°åæ¶ï¼å®ä¼å°æ°åé³å¶ï¼clampï¼å° 0 å° 255 çèå´å
ï¼è䏿¯æªææé«ææä½ãé¤äº Int8Array
ãUint8Array
å Uint8ClampedArray
以å¤çå
¶ä»ç±»åæ°ç»é½å°æ¯ä¸ªå
ç´ åå¨ä¸ºå¤ä¸ªåèãè¿äºåèå¯ä»¥æç
§ä»æé«ææä½å°æä½ææä½ï¼å¤§ç«¯åºï¼æä»æä½ææä½å°æé«ææä½ï¼å°ç«¯åºï¼ç顺åºè¿è¡æåºã请åé
åèåºä»¥äºè§£æ´å¤ãç±»ååæ°ç»å§ç»ä½¿ç¨å¹³å°çæ¬æºåè顺åºã妿è¦å¨ç¼å²åºä¸åå
¥åè¯»åæ¶æå®åè顺åºï¼åºè¯¥ä½¿ç¨ DataView
ã
å½åè¿äºç±»ååæ°ç»åå ¥æ¶ï¼è¶ åºå¯è¡¨ç¤ºèå´çå¼å°è¢«æ ååã
Uint8ClampedArray
é¤å¤ï¼é½ä½¿ç¨åºå®å®½åº¦æ°å¼è½¬æ¢ï¼é¦å
æªææ°åçå°æ°é¨åï¼ç¶ååæä½ä½ãUint8ClampedArray
é¦å
å°æ°åé³å¶å° 0 å° 255 çèå´å
ï¼å¤§äº 255 çå¼å为 255ï¼å°äº 0 çå¼å为 0ï¼ï¼ç¶å使ç¨é¶è¡å®¶èå
¥æ³å°ç»æåèäºå
¥ï¼èéåä¸åæ´ï¼å°æè¿çæ´æ°ï¼ä¹å°±æ¯è¯´ï¼å¦ææ°åæ°å¥½å¨ä¸¤ä¸ªæ´æ°ä¹é´ï¼å®å°åèäºå
¥å°æè¿çå¶æ°ãä¾å¦ï¼0.5
å为 0
ï¼1.5
å为 2
ï¼2.5
å为 2
ãFloat32Array
使ç¨âé¶è¡å®¶èå
¥æ³âå° 64 使µ®ç¹æ°è½¬æ¢ä¸º 32 ä½ãè¿ä¸ Math.fround()
æä¾çç®æ³ç¸åãå½ä¸ä¸ª TypedArray
被å建为ä¸ä¸ªå¯å大å°ç¼å²çè§å¾æ¶ï¼æ¹ååºå±ç¼å²ç大å°ä¼å¯¹ TypedArray
ç大å°äº§çä¸åçå½±åï¼è¿åå³äº TypedArray
æ¯å¦æ¯é¿åº¦è·è¸ªçã
妿ä¸ä¸ªç±»ååæ°ç»æ¯éè¿çç¥æä¼ é 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
妿ä¸ä¸ªç±»ååæ°ç»æ¯éè¿ä½¿ç¨ç¬¬ä¸ä¸ª 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 - ååå°èå´å
äºï¼
对äºé¿åº¦è·è¸ªçç±»ååæ°ç»ï¼å¦æ buffer
被缩å°å°å°äº 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
ä¼è¢«æ·è´å°ä¸ä¸ªæ°çç±»åæ°ç»ä¸ã对äºé bigint TypeedArray
æé 彿°ï¼typedArray
åæ°ä»
å¯ä»¥æ¯é bigint ç±»åï¼ä¾å¦ Int32Array
ï¼ãåæ ·ï¼å¯¹äº bigint TypedArray
æé 彿°ï¼BigInt64Array
æ BigUint64Array
ï¼ï¼typedArray
åæ°ä»
å¯ä»¥æ¯ bigint ç±»åãtypedArray
ä¸çæ¯ä¸ªå¼å¨æ·è´å°æ°æ°ç»ä¹åé½è½¬æ¢ä¸ºæé 彿°çç¸åºç±»åãæ°çç±»ååæ°ç»çé¿åº¦ä¸ typedArray
åæ°çé¿åº¦ç¸åã
object
å½ä½¿ç¨ç䏿¯ TypedArray
å®ä¾ç对象è°ç¨æ¶ï¼å°ä»¥ä¸ TypedArray.from()
æ¹æ³ç¸åçæ¹å¼å建ä¸ä¸ªæ°çç±»ååæ°ç»ã
length
å¯é
å½ä½¿ç¨é对象è°ç¨æ¶ï¼è¯¥åæ°å°è¢«è§ä¸ºæå®ç±»ååæ°ç»é¿åº¦çæ°åãå¨å
åä¸å建ä¸ä¸ªå
鍿°ç»ç¼å²åºï¼å¤§å°é¿åº¦ä¹ä»¥ BYTES_PER_ELEMENT
åèï¼ç¨ 0 å¡«å
ãçç¥ææåæ°ï¼çåäºä½¿ç¨ 0
ä½ä¸ºåæ°ã
buffer
ãbyteOffset
å¯éãlength
å¯é
å½ä½¿ç¨ ArrayBuffer
æ SharedArrayBuffer
å®ä¾ä»¥åå¯éç byteOffset
å length
åæ°è°ç¨æ¶ï¼å°å建ä¸ä¸ªæ°çæå®ç¼å²åºçç±»ååæ°ç»è§å¾ãbyteOffset
å length
åæ°æå®ç±»ååæ°ç»è§å¾å°æ´é²çå
åèå´ãå¦æå¿½ç¥è¿ä¸¤ä¸ªåæ°ï¼åæ¯æ´ä¸ªè§å¾çææ buffer
ï¼å¦æä»
å¿½ç¥ length
ï¼åæ¯ä» byteOffset
å¼å§ç buffer
å©ä½é¨åçè§å¾ã
ææ TypeArray
åç±»æé 彿°é½ä»¥ç¸åçæ¹å¼è¿è¡ãå®ä»¬é½ä¼æåºä»¥ä¸å¼å¸¸ï¼
TypeError
æåºä»¥ä¸æ åµä¹ä¸ï¼
typedArray
ï¼ä½å®æ¯ bigint ç±»åï¼èå½åæé 彿°ä¸æ¯ï¼åä¹äº¦ç¶ã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
屿§å¯¹è±¡ä¸å®ä¹ç访é®å¨å±æ§ï¼getterï¼ï¼å æ¤ç±ææ TypedArray
åç±»åå
±äº«ã
TypedArray.prototype.buffer
è¿åç±»ååæ°ç»å¼ç¨ç ArrayBuffer
ã
TypedArray.prototype.byteLength
è¿åç±»ååæ°ç»çé¿åº¦ï¼ä»¥åè为åä½ï¼ã
TypedArray.prototype.byteOffset
è¿åä»ç±»ååæ°ç»è·ç¦» ArrayBuffer
èµ·å§ä½ç½®çåç§»éï¼ä»¥åè为åä½ï¼ã
TypedArray.prototype.length
è¿åç±»ååæ°ç»ä¸ä¿åçå ç´ ä¸ªæ°ã
ææ 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()
妿è°ç¨æ°ç»ä¸çæ¯ä¸ªå
ç´ é½æ»¡è¶³æµè¯å½æ°ï¼åè¿å true
ãåè§ 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()
å°æ°ç»çææå
ç´ è¿æ¥ä¸ºå符串ãåè§ 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()
对æ°ç»çæ¯ä¸ªå
ç´ ï¼ä»å·¦å°å³ï¼æ§è¡ç¨æ·æä¾çâreducerâåè°å½æ°ï¼å°å
¶ç®å为å个å¼ãåè§ Array.prototype.reduce()
ã
TypedArray.prototype.reduceRight()
对æ°ç»çæ¯ä¸ªå
ç´ ï¼ä»å³å°å·¦ï¼æ§è¡ç¨æ·æä¾çâreducerâåè°å½æ°ï¼å°å
¶ç®å为å个å¼ãåè§ Array.prototype.reduceRight()
ã
TypedArray.prototype.reverse()
å转æ°ç»å
ç´ ç顺åºââ第ä¸ä¸ªæä¸ºæåä¸ä¸ªï¼æåä¸ä¸ªæä¸ºç¬¬ä¸ä¸ªãåè§ Array.prototype.reverse()
ã
TypedArray.prototype.set()
å¨ç±»ååæ°ç»ä¸åå¨å¤ä¸ªå¼ï¼ä»æå®æ°ç»è¯»åè¾å ¥å¼ã
TypedArray.prototype.slice()
æåè°ç¨æ°ç»çä¸é¨åå¹¶è¿åä¸ä¸ªæ°æ°ç»ãåè§ Array.prototype.slice()
ã
TypedArray.prototype.some()
妿è°ç¨æ°ç»ä¸è³å°æä¸ä¸ªå
ç´ æ»¡è¶³æä¾çæµè¯å½æ°ï¼åè¿å true
ãåè§ Array.prototype.some()
ã
TypedArray.prototype.sort()
对æ°ç»çå
ç´ è¿è¡æåºå¹¶è¿å该æ°ç»ãåè§ Array.prototype.sort()
ã
TypedArray.prototype.subarray()
ä»ç»å®çå¼å§åç»æçå
ç´ ç´¢å¼è¿åä¸ä¸ªæ°ç TypedArray
ã
TypedArray.prototype.values()
è¿åä¸ä¸ªæ°çæ°ç»è¿ä»£å¨å¯¹è±¡ï¼è¯¥å¯¹è±¡å
嫿°ç»ä¸æ¯ä¸ªç´¢å¼çå¼ãåè§ Array.prototype.values()
ã
TypedArray.prototype.toLocaleString()
è¿åä¸ä¸ªè¡¨ç¤ºè°ç¨æ°ç»åå
¶å
ç´ çæ¬å°åå符串ãåè§ Array.prototype.toLocaleString()
ã
TypedArray.prototype.toString()
è¿åä¸ä¸ªè¡¨ç¤ºè°ç¨æ°ç»åå
¶å
ç´ çå符串ãåè§ Array.prototype.toString()
ã
TypedArray.prototype[Symbol.iterator]()
è¿åä¸ä¸ªæ°çæ°ç»è¿ä»£å¨å¯¹è±¡ï¼è¯¥å¯¹è±¡å 嫿°ç»ä¸æ¯ä¸ªç´¢å¼çå¼ã
ä½ å¯ä»¥ä½¿ç¨æ åæ°ç»ç´¢å¼è¯æ³ï¼å³ä½¿ç¨æ¬å·ç¬¦å·ï¼å¼ç¨æ°ç»ä¸çå
ç´ ã使¯ï¼å¨ç±»åæ°ç»ä¸è·åæè®¾ç½®ç´¢å¼å±æ§ä¸ä¼å¨ååé¾ä¸æç´¢æ¤å±æ§ï¼å³ä½¿ç´¢å¼å·²è¶çãç´¢å¼å±æ§å°æ¥è¯¢ ArrayBuffer
并䏿°¸è¿ä¸ä¼æ¥çå¯¹è±¡å±æ§ãä½ ä»ç¶å¯ä»¥ä½¿ç¨å½å屿§ï¼å°±åææå¯¹è±¡ä¸æ ·ã
// Setting and getting using standard array syntax
const int16 = new Int16Array(2);
int16[0] = 42;
console.log(int16[0]); // 42
// Indexed properties on prototypes are not consulted (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
// Named properties are allowed, though (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 å¿
须对é½
å½å° TypedArray
æå»ºä¸º ArrayBuffer
çè§å¾æ¶ï¼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
åæ°ï¼ArrayBuffer
ä¼ éç» TypedArray
æé 彿°ç 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