Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. ArrayBuffer

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 EnglishAlways switch to English

ArrayBuffer

Baseline Widely available *

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 bénéficier de prise en charge variables.

L'objetArrayBuffer est utilisé afin de représenter un tampon (buffer) de données binaires de longueur fixe de façon générique.

Il s'agit d'un tableau d'octets. Il n'est pas possible de manipuler directement le contenu d'unArrayBuffer, la manipulation se fait de façon indirecte en créant untableau typé ou un objetDataView qui permet de représenter le tampon dans un format donné qui permet de lire/écrire des contenus dans le tampon de mémoire.

Le constructeurArrayBuffer() permet de créer un nouvel objetArrayBuffer dont la longueur, en octets, est fournie par l'argument. Il est aussi possible d'obtenir un tableau typé à partir de données existantes, par exemple depuis une chaîne enBase64 oudepuis un fichier local.

Description

Redimensionnement des ArrayBuffer

Un objetArrayBuffer peut être redimensionnable en incluant l'optionmaxByteLength lors de l'appel au constructeurArrayBuffer(). Vous pouvez savoir si unArrayBuffer est redimensionnable et connaître sa taille maximale en consultant ses propriétésresizable etmaxByteLength. Vous pouvez attribuer une nouvelle taille à unArrayBuffer redimensionnable avecresize(). Les nouveaux octets sont initialisés à 0.

Ces fonctionnalités rendent le redimensionnement desArrayBuffer plus efficace — sinon, il faut copier le tampon dans une nouvelle taille. Cela rapproche JavaScript de WebAssembly (la mémoire linéaire Wasm peut être redimensionnée avecWebAssembly.Memory.prototype.grow()).

Transfert des ArrayBuffer

Un objetArrayBuffer peut être transféré entre différents contextes d'exécution, comme lesWeb Workers ou lesService Workers, en utilisant l'algorithme de clonage structuré. Cela se fait en passant l'ArrayBuffer commeobjet transférable lors d'un appel àWorker.postMessage() ouServiceWorker.postMessage(). En JavaScript, vous pouvez aussi transférer la mémoire d'unArrayBuffer à un autre avectransfer() outransferToFixedLength().

Quand unArrayBuffer est transféré, sa copie d'origine devientdétachée — cela signifie qu'il n'est plus utilisable. À tout moment, il n'existe qu'une seule copie de l'ArrayBuffer qui a accès à la mémoire sous-jacente. Un tampon détaché a les comportements suivants :

  • byteLength vaut 0 (dans le tampon et les vues de tableau typé associées).
  • Les méthodes commeresize() etslice() lèvent une exceptionTypeError lorsqu'on les appelle. Les méthodes des vues de tableau typé associées lèvent aussi uneTypeError.

Vous pouvez vérifier si unArrayBuffer est détaché grâce à sa propriétédetached.

Constructeur

ArrayBuffer()

Crée un nouvel objetArrayBuffer.

Propriétés statiques

ArrayBuffer[Symbol.species]

La fonction de construction utilisée pour créer des objets dérivés.

Méthodes statiques

ArrayBuffer.isView()

Retournetrue siarg est une des vues sur le tableau typé sous la forme d'unobjet de tableau typé ouDataView etfalse sinon.

Propriétés d'instances

Ces propriétés sont définies surArrayBuffer.prototype et partagées par toutes les instances deArrayBuffer.

ArrayBuffer.prototype.byteLength

La taille, en octets, de l'objetArrayBuffer. Cette valeur est établie à la construction du tableau et ne peut être modifiée qu'en utilisant la méthodeArrayBuffer.prototype.resize() si l'objetArrayBuffer est redimensionnable.

ArrayBuffer.prototype.constructor

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

ArrayBuffer.prototype.detachedLecture seule

Retournetrue si l'objetArrayBuffer a été détaché (transféré), oufalse sinon.

ArrayBuffer.prototype.maxByteLength

La longueur maximale, en octets, à laquelle l'objetArrayBuffer peut être redimensionné. Cette valeur est établie à la construction du tableau et ne peut pas être modifiée.

ArrayBuffer.prototype.resizableLecture seule

Retournetrue si l'objetArrayBuffer peut être redimensionné, oufalse sinon.

ArrayBuffer.prototype[Symbol.toStringTag]

La valeur initiale de la propriété[Symbol.toStringTag] est la chaîne de caractères"ArrayBuffer". Cette propriété est utilisée dansObject.prototype.toString().

Méthodes d'instances

ArrayBuffer.prototype.resize()

Redimensionne l'objetArrayBuffer à la taille définie, en octets.

ArrayBuffer.prototype.slice()

Retourne un nouvel objetArrayBuffer dont le contenu est une copie des octets de cet objetArrayBuffer depuisbegin (inclus) jusqu'àend (exclus). Sibegin ouend est négatif, cela indique un indice à partir de la fin du tableau, plutôt qu'à partir du début.

ArrayBuffer.prototype.transfer()

Crée un nouvel objetArrayBuffer avec le même contenu d'octets que ce tampon, puis détache ce tampon.

ArrayBuffer.prototype.transferToFixedLength()

Crée un nouvel objetArrayBuffer non redimensionnable avec le même contenu d'octets que ce tampon, puis détache ce tampon.

Exemples

Créer un objetArrayBuffer

Dans cet exemple, on crée un tampon de mémoire sur 8 octets avec une vueInt32Array qui porte sur le tampon :

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

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-arraybuffer-objects

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp