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.

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

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
ArrayBufferChrome Support complet 7Edge Support complet 12Firefox Support complet 4IE Support complet 10Opera Support complet 11.6Safari Support complet 5.1WebView Android Support complet 4Chrome Android Support complet 18Firefox Android Support complet 4Opera Android Support complet 12Safari iOS Support complet 4.2Samsung Internet Android Support complet 1.0nodejs Support complet 0.10
ArrayBuffer() constructorChrome Support complet 7Edge Support complet 12Firefox Support complet 4IE Support complet 10Opera Support complet 11.6Safari Support complet 5.1WebView Android Support complet 4Chrome Android Support complet 18Firefox Android Support complet 4Opera Android Support complet 12Safari iOS Support complet 4.2Samsung Internet Android Support complet 1.0nodejs Support complet 0.10
byteLengthChrome Support complet 7Edge Support complet 12Firefox Support complet 4IE Support complet 10Opera Support complet 11.6Safari Support complet 5.1WebView Android Support complet 4Chrome Android Support complet 18Firefox Android Support complet 4Opera Android Support complet 12Safari iOS Support complet 4.2Samsung Internet Android Support complet 1.0nodejs Support complet 0.10
isViewChrome Support complet 32Edge Support complet 12Firefox Support complet 29IE Support complet 11Opera Support complet 19Safari Support complet 7WebView Android Support complet ≤37Chrome Android Support complet 32Firefox Android Support complet 29Opera Android Support complet 19Safari iOS Support complet 7Samsung Internet Android Support complet 2.0nodejs Support complet 4.0.0
sliceChrome Support complet 17Edge Support complet 12Firefox 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 12.1Safari Support complet 6WebView Android Support complet ≤37Chrome Android Support complet 18Firefox 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 12.1Safari iOS Support complet 6Samsung Internet Android Support complet 1.0nodejs Support complet 0.12
@@speciesChrome Support complet 51Edge Support complet 13Firefox Support complet 48IE Aucun support NonOpera Support complet 38Safari Support complet 10WebView Android Support complet 51Chrome Android Support complet 51Firefox Android Support complet 48Opera Android Support complet 41Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs 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
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