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. 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.

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
Cette propriété permet d'ajouter des propriétés à tous les objets ArrayBuffer.

Méthodes

ArrayBuffer.isView(arg)
Cette méthode renvoie true si arg est une des vues sur l'ArrayBuffer telle qu'un tableau typé ou un objet DataView, sinon elle renvoie false.
ArrayBuffer.transfer(ancienTampon [, nouvelleLongueur])
Cette méthode renvoie un nouvel objet ArrayBuffer dont le contenu est transféré depuis les données de ancienTampon et qui est ensuite tronqué ou rallongé avec des zéros pour que la taille du nouveau tampon soit nouvelleLongueur.

Les instances d'ArrayBuffer

Toutes les instances d'ArrayBuffer héritent de ArrayBuffer.prototype.

Propriétés

Méthodes

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 Latest Draft (ECMA-262)
La définition de 'ArrayBuffer' dans cette spécification.
Standard évolutif  

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple7 Oui41011.65.1
ArrayBuffer() without new throws ? ?44 ? ? ?
byteLength7 Oui41011.65.1
isView Oui Oui2911 Oui Oui
prototype7 Oui41011.65.1
slice Oui Oui12111 Oui6
transfer Non Non Non Non Non Non
@@species ? ?48 ? ? ?
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Support simple4 Oui Oui41011.64.2
ArrayBuffer() without new throws ? ? ?44 ? ? ?
byteLength4 Oui Oui41011.64.2
isView Oui Oui Oui2911 Oui Oui
prototype4 Oui Oui41011.64.2
slice Oui Oui Oui14111 Oui6
transfer Non Non Non Non Non Non Non
@@species ? ? ?48 ? ? ?

1. The non-standard ArrayBuffer.slice() method has been removed in Firefox 53 (but the standardized version ArrayBuffer.prototype.slice() is kept.

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);

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, BenoitEsnard, Jeremie, warpdesign, teoli, tregagnon, daniel35310
 Dernière mise à jour par : SphinxKnight,