[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer [Back]  [Original]

ArrayBuffer - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

ArrayBuffer

Baseline Large disponibilit *

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

* Certaines parties de cette fonctionnalit peuvent bnficier de prise en charge variables.

L'objet ArrayBuffer est utilis afin de reprsenter un tampon (buffer) de donnes binaires de longueur fixe de faon gnrique.

Il s'agit d'un tableau d'octets. Il n'est pas possible de manipuler directement le contenu d'un ArrayBuffer, la manipulation se fait de faon indirecte en crant un tableau typ ou un objet DataView qui permet de reprsenter le tampon dans un format donn qui permet de lire/crire des contenus dans le tampon de mmoire.

Le constructeur ArrayBuffer() permet de crer un nouvel objet ArrayBuffer dont la longueur, en octets, est fournie par l'argument. Il est aussi possible d'obtenir un tableau typ partir de donnes existantes, par exemple depuis une chane en Base64 ou depuis un fichier local.

Dans cet article

Description

Redimensionnement des ArrayBuffer

Un objet ArrayBuffer peut tre redimensionnable en incluant l'option maxByteLength lors de l'appel au constructeur ArrayBuffer(). Vous pouvez savoir si un ArrayBuffer est redimensionnable et connatre sa taille maximale en consultant ses proprits resizable et maxByteLength. Vous pouvez attribuer une nouvelle taille un ArrayBuffer redimensionnable avec resize(). Les nouveaux octets sont initialiss 0.

Ces fonctionnalits rendent le redimensionnement des ArrayBuffer plus efficace sinon, il faut copier le tampon dans une nouvelle taille. Cela rapproche JavaScript de WebAssembly (la mmoire linaire Wasm peut tre redimensionne avec WebAssembly.Memory.prototype.grow()).

Transfert des ArrayBuffer

Un objet ArrayBuffer peut tre transfr entre diffrents contextes d'excution, comme les Web Workers ou les Service Workers, en utilisant l'algorithme de clonage structur. Cela se fait en passant l'ArrayBuffer comme objet transfrable lors d'un appel Worker.postMessage() ou ServiceWorker.postMessage(). En JavaScript, vous pouvez aussi transfrer la mmoire d'un ArrayBuffer un autre avec transfer() ou transferToFixedLength().

Quand un ArrayBuffer est transfr, sa copie d'origine devient dtache cela signifie qu'il n'est plus utilisable. tout moment, il n'existe qu'une seule copie de l'ArrayBuffer qui a accs la mmoire sous-jacente. Un tampon dtach a les comportements suivants :

  • byteLength vaut 0 (dans le tampon et les vues de tableau typ associes).
  • Les mthodes comme resize() et slice() lvent une exception TypeError lorsqu'on les appelle. Les mthodes des vues de tableau typ associes lvent aussi une TypeError.

Vous pouvez vrifier si un ArrayBuffer est dtach grce sa proprit detached.

Constructeur

ArrayBuffer()

Cre un nouvel objet ArrayBuffer.

Proprits statiques

ArrayBuffer[Symbol.species]

La fonction de construction utilise pour crer des objets drivs.

Mthodes statiques

ArrayBuffer.isView()

Retourne true si arg est une des vues sur le tableau typ sous la forme d'un objet de tableau typ ou DataView et false sinon.

Proprits d'instances

Ces proprits sont dfinies sur ArrayBuffer.prototype et partages par toutes les instances de ArrayBuffer.

ArrayBuffer.prototype.byteLength

La taille, en octets, de l'objet ArrayBuffer. Cette valeur est tablie la construction du tableau et ne peut tre modifie qu'en utilisant la mthode ArrayBuffer.prototype.resize() si l'objet ArrayBuffer est redimensionnable.

ArrayBuffer.prototype.constructor

La fonction de construction qui a cr l'objet d'instance. Pour les instances de ArrayBuffer, la valeur initiale est le constructeur ArrayBuffer.

ArrayBuffer.prototype.detached Lecture seule

Retourne true si l'objet ArrayBuffer a t dtach (transfr), ou false sinon.

ArrayBuffer.prototype.maxByteLength

La longueur maximale, en octets, laquelle l'objet ArrayBuffer peut tre redimensionn. Cette valeur est tablie la construction du tableau et ne peut pas tre modifie.

ArrayBuffer.prototype.resizable Lecture seule

Retourne true si l'objet ArrayBuffer peut tre redimensionn, ou false sinon.

ArrayBuffer.prototype[Symbol.toStringTag]

La valeur initiale de la proprit [Symbol.toStringTag] est la chane de caractres "ArrayBuffer". Cette proprit est utilise dans Object.prototype.toString().

Mthodes d'instances

ArrayBuffer.prototype.resize()

Redimensionne l'objet ArrayBuffer la taille dfinie, en octets.

ArrayBuffer.prototype.slice()

Retourne un nouvel objet ArrayBuffer dont le contenu est une copie des octets de cet objet ArrayBuffer depuis begin (inclus) jusqu' end (exclus). Si begin ou end est ngatif, cela indique un indice partir de la fin du tableau, plutt qu' partir du dbut.

ArrayBuffer.prototype.transfer()

Cre un nouvel objet ArrayBuffer avec le mme contenu d'octets que ce tampon, puis dtache ce tampon.

ArrayBuffer.prototype.transferToFixedLength()

Cre un nouvel objet ArrayBuffer non redimensionnable avec le mme contenu d'octets que ce tampon, puis dtache ce tampon.

Exemples

Crer un objet ArrayBuffer

Dans cet exemple, on cre un tampon de mmoire sur 8 octets avec une vue Int32Array qui porte sur le tampon :

js
const buffer = new ArrayBuffer(8);
const view = new Int32Array(buffer);

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-arraybuffer-objects

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page