ArrayBuffer
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
* Some parts of this feature may have varying levels of support.
ArrayBuffer ãªãã¸ã§ã¯ãã¯ãä¸è¬çãªçã®ãã¤ããªã¼ãã¼ã¿ãããã¡ã¼ã表ç¾ããããã«ä½¿ç¨ãã¾ãã
ããã¯ãã¤ãã®é
åã§ãä»ã®è¨èªã§ã¯ããããã¤ãé
åãã¨å¼ã°ãã¾ããArrayBuffer ã®å
容ãç´æ¥æä½ãããã¨ã¯ã§ãã¾ããã代ããã«ããããã¡ã¼ãç¹å®ã®å½¢å¼ã§è¡¨ç¾ããåä»ãé
åãªãã¸ã§ã¯ãã¾ã㯠DataView ãªãã¸ã§ã¯ãã®ããããã使ãã¦ããããã¡ã¼ã®å
容ãèªã¿æ¸ããã¾ãã
ArrayBuffer() ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ãæå®ããé·ãã® ArrayBuffer ããã¤ãåä½ã§ä½æãã¾ããæ¢åã®ãã¼ã¿ããããã¨ãã°ãBase64 æååããã¼ã«ã«ãã¡ã¤ã«ããé
åãããã¡ã¼ãåå¾ãããã¨ãã§ãã¾ãã
ArrayBuffer ã¯ç§»è²å¯è½ãªãã¸ã§ã¯ãã§ãã
解説
>ArrayBuffer ã®ãµã¤ãºå¤æ´
ArrayBuffer ãªãã¸ã§ã¯ã㯠maxByteLength ãªãã·ã§ã³ãæå®ã㦠ArrayBuffer() ã³ã³ã¹ãã©ã¯ã¿ã¼ãå¼ã³åºããã¨ã§ããµã¤ãºã夿´ãããã¨ãã§ããããã«ãªãã¾ããArrayBuffer ããµã¤ãºå¤æ´å¯è½ãã©ãããã¾ããã®æå¤§ãµã¤ãºãç¥ãã«ã¯ããããã resizable 㨠maxByteLength ã®ããããã£ã«ã¢ã¯ã»ã¹ããã°åããã¾ãããµã¤ãºå¤æ´å¯è½ãª ArrayBuffer ã«ã¯ã resize() ãå¼ã³åºãã¦æ°ãããµã¤ãºãå²ãå½ã¦ããã¨ãã§ãã¾ããæ°ãããã¤ã㯠0 ã«åæåããã¾ãã
ãããã®æ©è½ã«ãããArrayBuffer ã®ãµã¤ãºå¤æ´ãããå¹ççã«ãªãã¾ããããããªãã¨ãæ°ãããµã¤ãºã®ãããã¡ã¼ã®ã³ãã¼ãæããªããã°ãªãã¾ãããã¾ãããã®ç¹ã§ JavaScript ã WebAssembly ã¨åçã«ãªãã¾ãï¼WASM ã®ç·å½¢ã¡ã¢ãªã¼ã¯ WebAssembly.Memory.prototype.grow() ã§ãµã¤ãºå¤æ´ãå¯è½ã§ãï¼ã
ArrayBuffer ã®ç§»è²
ArrayBuffer ãªãã¸ã§ã¯ãã¯ãã¦ã§ãã¯ã¼ã«ã¼ããµã¼ãã¹ã¯ã¼ã«ã¼ãªã©ãç°ãªãå®è¡ã³ã³ããã¹ãéã§æ§é åã¯ãã¼ã³ã¢ã«ã´ãªãºã ã使ç¨ãã¦ç§»è²ãããã¨ãã§ãã¾ããããã¯ãArrayBuffer ãç§»è²å¯è½ãªãã¸ã§ã¯ãã¨ã㦠Worker.postMessage() ã¾ã㯠ServiceWorker.postMessage() ã®å¼ã³åºãã«æ¸¡ããã¨ã§å®ç¾ããã¾ããç´ç²ãª JavaScript ã§ã¯ã transfer() ã¾ã㯠transferToFixedLength() ã¡ã½ããã使ç¨ãã¦ããã ArrayBuffer ããä»ã¸ã¡ã¢ãªã¼ã®æææ¨©ãç§»ããã¨ãã§ãã¾ãã
ArrayBuffer ãç§»è²ãããã¨ãå
ã®ã³ãã¼ã¯åé¢ç¶æ
ã«ãªãã¾ããããã¯ããã®ã³ãã¼ã使ç¨ã§ããªããªãã¨ãããã¨ã§ãããããªãæç¹ã«ããã¦ããåºç¤ã¨ãªãã¡ã¢ãªã¼ã«å®éã«ã¢ã¯ã»ã¹ã§ãã ArrayBuffer ã®ã³ãã¼ã¯ä¸ã¤ã ãã§ããåé¢ããããããã¡ã¼ã«ã¯ä»¥ä¸ã®ãããªæåã«ãªãã¾ãã
byteLength㯠0 ã«ãªãã¾ãï¼ãã®ãããã¡ã¼ã¨ãé¢é£ä»ããããåä»ãé åãã¥ã¼ã®ä¸¡æ¹ã§ï¼ãresize()ãslice()ãªã©ã®ã¡ã½ãããå¼ã³åºãã¨ãTypeErrorãçºçãã¾ããé¢é£ä»ãããå¤åä»ãé åãã¥ã¼ã®ã¡ã½ããããåæ§ã«TypeErrorãçºçãã¾ãã
ArrayBuffer ãåé¢ããã¦ãããã©ããã¯ã detached ããããã£ã§ç¢ºèªãããã¨ãã§ãã¾ãã
ã³ã³ã¹ãã©ã¯ã¿ã¼
ArrayBuffer()-
æ°ãã
ArrayBufferãªãã¸ã§ã¯ãã使ãã¾ãã
éçããããã£
ArrayBuffer[Symbol.species]-
æ´¾çãªãã¸ã§ã¯ãã使ããéã«ä½¿ç¨ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§ãã
éçã¡ã½ãã
ArrayBuffer.isView()-
argãåä»ãé åãªãã¸ã§ã¯ããDataViewã®ãã㪠ArrayBuffer ãã¥ã¼ã®ããããã§ããå ´åã¯trueãè¿ãã¾ãããã以å¤ã®å ´åã¯falseãè¿ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ããããã£
ãããã®ããããã£ã¯ ArrayBuffer.prototype ã§å®ç¾©ããã¦ããããã¹ã¦ã® ArrayBuffer ã¤ã³ã¹ã¿ã³ã¹ã§å
±æããã¾ãã
ArrayBuffer.prototype.byteLength-
ArrayBufferã®ãµã¤ãºããã¤ãåä½ã§æå®ãã¾ããããã¯é åã®æ§ç¯æã«è¨å®ãããArrayBufferããµã¤ãºå¤æ´å¯è½ãªå ´åã«ã®ã¿ArrayBuffer.prototype.resize()ã¡ã½ããã使ç¨ãã¦å¤æ´ãããã¨ãã§ãã¾ãã ArrayBuffer.prototype.constructor-
ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ãã使ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã
ArrayBufferã¤ã³ã¹ã¿ã³ã¹ã®å ´åãåæå¤ã¯ArrayBufferã³ã³ã¹ãã©ã¯ã¿ã¼ã§ãã ArrayBuffer.prototype.detached-
èªã¿åãå°ç¨ã§ãã
ArrayBufferãæ¢ã«åé¢ããã¦ããï¼ç§»è²æ¸ã¿ã§ããï¼å ´åã¯trueãããã§ãªããã°falseãè¿ãæ¡ãã ArrayBuffer.prototype.maxByteLength-
èªã¿åãå°ç¨ã§ã
ArrayBufferã®ãµã¤ãºã夿´ã§ããæå¤§é·ããã¤ãæ°ã§æå®ãã¾ããããã¯é åãæ§ç¯ãããéã«è¨å®ããã夿´ãããã¨ã¯ã§ãã¾ããã ArrayBuffer.prototype.resizable-
èªã¿åãå°ç¨ã§ãã
ArrayBufferã®ãµã¤ãºã夿´ã§ããå ´åã¯trueãã夿´ã§ããªãå ´åã¯falseãè¿ãã¾ãã ArrayBuffer.prototype[Symbol.toStringTag]-
[Symbol.toStringTag]ããããã£ã®åæå¤ã¯æåå"ArrayBuffer"ã§ãããã®ããããã£ã¯Object.prototype.toString()ã§ä½¿ç¨ããã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
ArrayBuffer.prototype.resize()-
ArrayBufferãæå®ãããµã¤ãºï¼ãã¤ãåä½ï¼ã«ãµã¤ãºå¤æ´ãã¾ãã ArrayBuffer.prototype.slice()-
æ°ãã
ArrayBufferã«ãbeginï¼ã®ä½ç½®ï¼ããendï¼ã®æåï¼ã¾ã§ã®ãã¤ãã®ã³ãã¼ãå ¥ãã¦è¿ãã¾ããbeginã¾ãã¯endã®ã©ã¡ãããè² ã®å¤ã®å ´åã¯ãé åã®å é ããã§ã¯ãªããé åã®æ«å°¾ããã®ä½ç½®ãæãã¾ãã ArrayBuffer.prototype.transfer()-
ãã®ãããã¡ã¼ã¨åããã¤ãå 容ãæã¤æ°ãã
ArrayBufferã使ãããã®å¾ãã®ãããã¡ã¼ãåãé¢ãã¾ãã ArrayBuffer.prototype.transferToFixedLength()-
ãã®ãããã¡ã¼ã¨åããã¤ãå 容ãæã¤ãæ°ãããªãµã¤ãºä¸å¯è½ãª
ArrayBufferã使ãããã®å¾ã§ãã®ãããã¡ã¼ãåé¢ãã¾ãã
ä¾
>ArrayBuffer ã®ä½æ
ãã®ä¾ã§ã¯ããããã¡ã¼ãåç
§ãã Int32Array ãã¥ã¼ãæã¤ 8 ãã¤ãã®ãããã¡ã¼ã使ãã¾ãã
const buffer = new ArrayBuffer(8);
const view = new Int32Array(buffer);
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-arraybuffer-objects> |