ArrayBuffer
L'objet ArrayBuffer est utilisé afin de représenter un tampon (buffer) de données binaires de longueur fixe de façon générique. C'est un tableau d'octets. La manipulation du contenu d'un ArrayBuffer se fait de façon indirecte en créant un tableau typé ou un objet DataView qui permet de représenter le tampon dans un format donné qui permet de lire/écrire des contenus dans le tampon de mémoire.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Syntaxe
new ArrayBuffer(longueur)
Paramètres
longueur- La taille, exprimée en octets, du tableau représentant le tampon.
Valeur de retour
Un nouvel objet ArrayBuffer de la taille donnée. Ses éléments sont initialisés à 0.
Exceptions
Une exception RangeError est levée lorsque l'argument longueur est supérieur à Number.MAX_SAFE_INTEGER (soit 253) ou s'il est négatif.
Description
Le constructeur ArrayBuffer crée une nouvelle instance d'ArrayBuffer dont la longueur est celle donnée lors de la construction.
Obtenir un tampon mémoire depuis des données existantes
Propriétés
ArrayBuffer.length- La longueur du constructeur
ArrayBuffer. Elle vaut 1. get ArrayBuffer[@@species]- La fonction de construction utilisée pour créer les objets dérivés.
ArrayBuffer.prototype(en-US)- Cette propriété permet d'ajouter des propriétés à tous les objets
ArrayBuffer.
Méthodes
ArrayBuffer.isView(arg)- Cette méthode renvoie
truesiargest une des vues sur l'ArrayBuffertelle qu'un tableau typé ou un objetDataView, sinon elle renvoiefalse. ArrayBuffer.transfer(ancienTampon [, nouvelleLongueur])-
Cette méthode renvoie un nouvel objet
ArrayBufferdont le contenu est transféré depuis les données deancienTamponet qui est ensuite tronqué ou rallongé avec des zéros pour que la taille du nouveau tampon soitnouvelleLongueur.
Les instances d'ArrayBuffer
Toutes les instances d'ArrayBuffer héritent de ArrayBuffer.prototype (en-US).
Propriétés
{{page('fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/prototype','Propri.C3.A9t.C3.A9s')}}
Méthodes
{{page('fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/prototype','M.C3.A9thodes')}}
ArrayBuffer.slice()- Cette méthode fournit la même fonctionnalité que
ArrayBuffer.prototype.slice().
Exemple
Dans cet exemple, on crée un tampon sur 8 octets avec une vue Int32Array qui fait référence à ce tampon :
var tampon = new ArrayBuffer(8);
var vue = new Int32Array(tampon);Spécifications
| Spécification | État | Commentaires |
|---|---|---|
| Typed Array Specification | Obsolete | Remplacée par ECMAScript 6. |
| ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'ArrayBuffer' dans cette spécification. |
Standard | Définition initiale au sein d'un standard ECMA. new est obligaoire pour utiliser le constructeur. |
| ECMAScript (ECMA-262) La définition de 'ArrayBuffer' dans cette spécification. |
Standard évolutif |
Compatibilité des navigateurs
BCD tables only load in the browser
Notes de compatibilité
À partir d'ECMAScript 2015 (ES6), ArrayBuffer doit être utilisée avec new. Appeler un constructeur ArrayBuffer comme une fonction, sans new, provoquera une exception TypeError.
var dv = ArrayBuffer(10);
// TypeError: calling a builtin ArrayBuffer constructor
// without new is forbidden
var dv = new ArrayBuffer(10);