ArrayBuffer.prototype.resize()
åºçº¿
2024
æè¿å¯ç¨
èª July 2024 èµ·ï¼æ¤ç¹æ§å·²å¨ææ°æµè§å¨ä¸å¾å°æ¯æãä½å¨è¾æ§çè®¾å¤ææµè§å¨ä¸å¯è½æ æ³è¿è¡ã
ArrayBuffer å®ä¾ç resize() æ¹æ³å° ArrayBuffer è°æ´ä¸ºæå®ç大å°ï¼ä»¥åè为åä½ã
å°è¯ä¸ä¸
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
console.log(buffer.byteLength);
// Expected output: 8
buffer.resize(12);
console.log(buffer.byteLength);
// Expected output: 12
è¯æ³
resize(newLength)
åæ°
newLength-
ArrayBufferè¦è°æ´å°çæ°çé¿åº¦ï¼ä»¥åè为åä½ã
è¿åå¼
æ ï¼undefinedï¼ã
å¼å¸¸
TypeError-
妿
ArrayBufferå·²å离æä¸å¯è°æ´å¤§å°ï¼åæåºè¯¥é误ã RangeError-
妿
newLength大äºè¯¥ArrayBufferçmaxByteLengthï¼åæåºè¯¥é误ã
æè¿°
resize() æ¹æ³å° ArrayBuffer è°æ´ä¸º newLength åæ°æå®ç大å°ï¼åææ¯è¯¥ ArrayBuffer æ¯å¯è°æ´å¤§å°ç并䏿°ç大å°å°äºæçäºè¯¥ ArrayBuffer ç maxByteLengthãæ°åè被åå§å为 0ã
请注æï¼ä½ å¯ä»¥ä½¿ç¨ resize() æ¥ç¼©å°åå¢å¤§ ArrayBufferââå³ä½¿ newLength å°äº ArrayBuffer çå½å byteLengthã
示ä¾
>ä½¿ç¨ resize()
å¨è¿ä¸ªç¤ºä¾ä¸ï¼æä»¬å建ä¸ä¸ª 8 åèç¼å²åºï¼è¯¥ç¼å²åºå¯è°æ´å¤§å°å°çæå¤§é¿åº¦æ¯ 16 åèï¼ç¶åæ£æ¥å
¶ resizable 屿§ï¼å¦æ resizable è¿å true åè°æ´å
¶å¤§å°ï¼
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
if (buffer.resizable) {
console.log("ç¼å²åºå¤§å°æ¯å¯è°æ´çï¼");
buffer.resize(12);
}
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-arraybuffer.prototype.resize> |