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

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung InternetNode.js
Support simpleChrome Support complet 7Edge Support complet OuiFirefox Support complet 4IE Support complet 10Opera Support complet 11.6Safari Support complet 5.1WebView Android Support complet 4Chrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet 11.6Safari iOS Support complet 4.2Samsung Internet Android Support complet Ouinodejs Support complet Oui
ArrayBuffer() without new throwsChrome Support complet OuiEdge Support complet OuiFirefox Support complet 44IE Aucun support NonOpera Support complet OuiSafari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android Support complet 44Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs Support complet 0.12
byteLengthChrome Support complet 7Edge Support complet OuiFirefox Support complet 4IE Support complet 10Opera Support complet 11.6Safari Support complet 5.1WebView Android Support complet 4Chrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet 11.6Safari iOS Support complet 4.2Samsung Internet Android Support complet Ouinodejs Support complet Oui
isViewChrome Support complet OuiEdge Support complet OuiFirefox Support complet 29IE Support complet 11Opera Support complet OuiSafari Support complet OuiWebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 29Opera Android Support complet OuiSafari iOS Support complet OuiSamsung Internet Android Support complet Ouinodejs Support complet Oui
prototypeChrome Support complet 7Edge Support complet OuiFirefox Support complet 4IE Support complet 10Opera Support complet 11.6Safari Support complet 5.1WebView Android Support complet 4Chrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet 11.6Safari iOS Support complet 4.2Samsung Internet Android Support complet Ouinodejs Support complet Oui
sliceChrome Support complet OuiEdge Support complet OuiFirefox Support complet 12
Notes
Support complet 12
Notes
Notes The non-standard ArrayBuffer.slice() method has been removed in Firefox 53 (but the standardized version ArrayBuffer.prototype.slice() is kept.
IE Support complet 11Opera Support complet OuiSafari Support complet 6WebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 14
Notes
Support complet 14
Notes
Notes The non-standard ArrayBuffer.slice() method has been removed in Firefox 53 (but the standardized version ArrayBuffer.prototype.slice() is kept.
Opera Android Support complet OuiSafari iOS Support complet 6Samsung Internet Android Support complet Ouinodejs Support complet Oui
transfer
ExpérimentaleNon-standard
Chrome Aucun support NonEdge Aucun support NonFirefox Aucun support NonIE Aucun support NonOpera Aucun support NonSafari Aucun support NonWebView Android Aucun support NonChrome Android Aucun support NonEdge Mobile Aucun support NonFirefox Android Aucun support NonOpera Android Aucun support NonSafari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Aucun support Non
@@speciesChrome ? Edge ? Firefox Support complet 48IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android Support complet 48Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs Support complet 6.5.0
Support complet 6.5.0
Support complet 6.0.0
Désactivée
Désactivée From version 6.0.0: this feature is behind the --harmony runtime flag.

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Voir les notes d'implémentation.
Voir les notes d'implémentation.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.

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,