DataView
Baseline
Widely available
*
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
La vue DataView fournit une interface de bas niveau pour lire et écrire des données de différents types numériques dans un objet ArrayBuffer, quel que soit le « boutisme » (endianness en anglais) de la plateforme.
Description
>Boutisme
Les formats numériques sur plusieurs octets sont représentés différemment en mémoire selon l'architecture de la machine (voir la page du glossaire sur le boutisme pour plus d'explications). Les accesseurs DataView permettent de contrôler explicitement la façon dont se fait l'accès aux données, quel que soit le boutisme de l'ordinateur.
const littleEndian = (() => {
const buffer = new ArrayBuffer(2);
new DataView(buffer).setInt16(0, 256, true /* littleEndian */);
// Int16Array utilise le boutisme de la plateforme
return new Int16Array(buffer)[0] === 256;
})();
console.log(littleEndian); // true ou false
Note :
Par défaut, DataView lit et écrit en grand-boutiste (big-endian en anglais), mais la plupart des plateformes utilisent le format petit-boutiste (little-endian en anglais).
Constructeur
DataView()-
Crée un nouvel objet
DataView.
Propriétés d'instances
Ces propriétés sont définies sur DataView.prototype et partagées par toutes les instances de DataView.
DataView.prototype.buffer-
Retourne l'objet
ArrayBufferréférencé par laDataView. DataView.prototype.byteLength-
Retourne la longueur (en octets) du
DataView. DataView.prototype.byteOffset-
Retourne le décalage (en octets) du
DataViewdepuis le début de son objetArrayBuffer. DataView.prototype.constructor-
La fonction constructeur qui a créé l'objet d'instance. Pour les instances de
DataView, la valeur initiale est le constructeurDataView. DataView.prototype[Symbol.toStringTag]-
La valeur initiale de la propriété
[Symbol.toStringTag]est la chaîne de caractères"DataView". Cette propriété est utilisée dansObject.prototype.toString().
Méthodes d'instances
DataView.prototype.getBigInt64()-
Lit 8 octets à partir de l'encart d'octet défini de cette
DataViewet les interprète comme un entier signé sur 64 bits. DataView.prototype.getBigUint64()-
Lit 8 octets à partir de l'encart d'octet défini de cette
DataViewet les interprète comme un entier non-signé sur 64 bits. DataView.prototype.getFloat16()-
Lit 2 octets à partir de l'encart d'octet défini de cette
DataViewet les interprète comme un nombre flottant sur 16 bits. DataView.prototype.getFloat32()-
Lit 4 octets à partir de l'encart d'octet défini de cette
DataViewet les interprète comme un nombre flottant sur 32 bits. DataView.prototype.getFloat64()-
Lit 8 octets à partir de l'encart d'octet défini de cette
DataViewet les interprète comme un nombre flottant sur 64 bits. DataView.prototype.getInt16()-
Lit 2 octets à partir de l'encart d'octet défini de cette
DataViewet les interprète comme un entier signé sur 16 bits. DataView.prototype.getInt32()-
Lit 4 octets à partir de l'encart d'octet défini de cette
DataViewet les interprète comme un entier signé sur 32 bits. DataView.prototype.getInt8()-
Lit 1 octet à l'encart d'octet défini de cette
DataViewet l'interprète comme un entier signé sur 8 bits. DataView.prototype.getUint16()-
Lit 2 octets à partir de l'encart d'octet défini de cette
DataViewet les interprète comme un entier non-signé sur 16 bits. DataView.prototype.getUint32()-
Lit 4 octets à partir de l'encart d'octet défini de cette
DataViewet les interprète comme un entier non-signé sur 32 bits. DataView.prototype.getUint8()-
Lit 1 octet à l'encart d'octet défini de cette
DataViewet l'interprète comme un entier non-signé sur 8 bits. DataView.prototype.setBigInt64()-
Prend un
BigIntet l'enregistre comme un entier signé sur 64 bits dans les 8 octets à partir de l'encart d'octet défini de cetteDataView. DataView.prototype.setBigUint64()-
Prend un
BigIntet l'enregistre comme un entier non-signé sur 64 bits dans les 8 octets à partir de l'encart d'octet défini de cetteDataView. DataView.prototype.setFloat16()-
Prend un nombre et l'enregistre comme un flottant sur 16 bits dans les 2 octets à partir de l'encart d'octet défini de cette
DataView. DataView.prototype.setFloat32()-
Prend un nombre et l'enregistre comme un flottant sur 32 bits dans les 4 octets à partir de l'encart d'octet défini de cette
DataView. DataView.prototype.setFloat64()-
Prend un nombre et l'enregistre comme un flottant sur 64 bits dans les 8 octets à partir de l'encart d'octet défini de cette
DataView. DataView.prototype.setInt16()-
Prend un nombre et l'enregistre comme un entier signé sur 16 bits dans les 2 octets à l'encart d'octet défini de cette
DataView. DataView.prototype.setInt32()-
Prend un nombre et l'enregistre comme un entier signé sur 32 bits dans les 4 octets à l'encart d'octet défini de cette
DataView. DataView.prototype.setInt8()-
Prend un nombre et l'enregistre comme un entier signé sur 8 bits dans l'octet à l'encart d'octet défini de cette
DataView. DataView.prototype.setUint16()-
Prend un nombre et l'enregistre comme un entier non-signé sur 16 bits dans les 2 octets à l'encart d'octet défini de cette
DataView. DataView.prototype.setUint32()-
Prend un nombre et l'enregistre comme un entier non-signé sur 32 bits dans les 4 octets à l'encart d'octet défini de cette
DataView. DataView.prototype.setUint8()-
Prend un nombre et l'enregistre comme un entier non-signé sur 8 bits dans l'octet à l'encart d'octet défini de cette
DataView.
Exemples
>Utiliser DataView
const buffer = new ArrayBuffer(16);
const view = new DataView(buffer, 0);
view.setInt16(1, 42);
view.getInt16(1); // 42
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-dataview-objects> |