This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

ArrayBuffer.prototype.transferToFixedLength()

Baseline 2024
Newly available

Since โจMarch 2024โฉ, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

ArrayBuffer ์ธ์Šคํ„ด์Šค์˜ transferToFixedLength() ๋ฉ”์„œ๋“œ๋Š” ์ด ๋ฒ„ํผ์˜ ๋‚ด์šฉ๊ณผ ๋™์ผํ•œ ๋ฐ”์ดํŠธ์˜ ํฌ๊ธฐ ์กฐ์ ˆ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ArrayBuffer๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์ด ๋ฒ„ํผ๋ฅผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ฌธ

js
transferToFixedLength()
transferToFixedLength(newByteLength)

๋งค๊ฐœ๋ณ€์ˆ˜

newByteLength

์ƒˆ ArrayBuffer์˜ byteLength์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ์ด ArrayBuffer์˜ byteLength์ž…๋‹ˆ๋‹ค.

  • newByteLength๊ฐ€ ์ด ArrayBuffer์˜ byteLength๋ณด๋‹ค ์ž‘์œผ๋ฉด ํ•ด๋‹น ๋ฒ„ํผ์— ๋‹ด์ง€๋ชปํ•ด ๋„˜์น˜๋Š” ๋ฐ”์ดํŠธ๋Š” ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.
  • newByteLength๊ฐ€ ์ด ArrayBuffer์˜ byteLength๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๋‚จ๋Š” ๋ฐ”์ดํŠธ๋Š” 0์œผ๋กœ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ๊ฐ’

์ƒˆ๋กœ์šด ArrayBuffer ๊ฐ์ฒด. ํ•ด๋‹น ๊ฐ์ฒด์˜ ๋‚ด์šฉ์€ ์ด ArrayBuffer์˜ ๋‚ด์šฉ์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜๋ฉฐ, ์—ฌ๋ถ„์˜ ๋ฐ”์ดํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด 0์œผ๋กœ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ArrayBuffer๋Š” ์–ธ์ œ๋‚˜ ํฌ๊ธฐ ์กฐ์ ˆ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ ArrayBuffer๋Š” ๋ถ„๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์™ธ

TypeError

์ด ArrayBuffer๊ฐ€ ์ด๋ฏธ ๋ถ„๋ฆฌ๋˜์—ˆ๋‹ค๋ฉด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์„ค๋ช…

transfer()์™€ ๋‹ฌ๋ฆฌ, transferToFixedLength()๋Š” ํ•ญ์ƒ ํฌ๊ธฐ ์กฐ์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ArrayBuffer๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ด ArrayBuffer๊ฐ€ ํฌ๊ธฐ ์กฐ์ •์ด ๊ฐ€๋Šฅํ•˜๋”๋ผ๋„ newByteLength๊ฐ€ maxByteLength๋ณด๋‹ค ํด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ArrayBuffer ์ „์†กํ•˜๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ์ œ

๊ณ ์ • ๊ธธ์ด ๋ฒ„ํผ์— ํฌ๊ธฐ ์กฐ์ • ๊ฐ€๋Šฅํ•œ ArrayBuffer ์ „์†กํ•˜๊ธฐ

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const view = new Uint8Array(buffer);
view[1] = 2;
view[7] = 4;

const buffer2 = buffer.transferToFixedLength();
console.log(buffer2.byteLength); // 8
console.log(buffer2.resizable); // false
const view2 = new Uint8Array(buffer2);
console.log(view2[1]); // 2
console.log(view2[7]); // 4

transferToFixedLength๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด newByteLength๋Š” ์›๋ณธ ArrayBuffer์˜ maxByteLength๋ณด๋‹ค ํด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const view = new Uint8Array(buffer);
view[1] = 2;
view[7] = 4;

const buffer2 = buffer.transferToFixedLength(20);
console.log(buffer2.byteLength); // 20
console.log(buffer2.resizable); // false
const view2 = new Uint8Array(buffer2);
console.log(view2[1]); // 2
console.log(view2[7]); // 4

๋ช…์„ธ์„œ

Specification
ECMAScriptยฎ 2026 Language Specification
# sec-arraybuffer.prototype.transfertofixedlength

๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ

๊ฐ™์ด ๋ณด๊ธฐ