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
true
siarg
est une des vues sur l'ArrayBuffer
telle qu'un tableau typé ou un objetDataView
, sinon elle renvoiefalse
. ArrayBuffer.transfer(ancienTampon [, nouvelleLongueur])
-
Cette méthode renvoie un nouvel objet
ArrayBuffer
dont le contenu est transféré depuis les données deancienTampon
et 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);