Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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.

js
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 ArrayBuffer référencé par la DataView.

DataView.prototype.byteLength

Retourne la longueur (en octets) du DataView.

DataView.prototype.byteOffset

Retourne le décalage (en octets) du DataView depuis le début de son objet ArrayBuffer.

DataView.prototype.constructor

La fonction constructeur qui a créé l'objet d'instance. Pour les instances de DataView, la valeur initiale est le constructeur DataView.

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 dans Object.prototype.toString().

Méthodes d'instances

DataView.prototype.getBigInt64()

Lit 8 octets à partir de l'encart d'octet défini de cette DataView et 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 DataView et 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 DataView et 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 DataView et 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 DataView et 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 DataView et 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 DataView et les interprète comme un entier signé sur 32 bits.

DataView.prototype.getInt8()

Lit 1 octet à l'encart d'octet défini de cette DataView et 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 DataView et 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 DataView et 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 DataView et l'interprète comme un entier non-signé sur 8 bits.

DataView.prototype.setBigInt64()

Prend un BigInt et l'enregistre comme un entier signé sur 64 bits dans les 8 octets à partir de l'encart d'octet défini de cette DataView.

DataView.prototype.setBigUint64()

Prend un BigInt et l'enregistre comme un entier non-signé sur 64 bits dans les 8 octets à partir de l'encart d'octet défini de cette DataView.

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

js
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

Compatibilité des navigateurs

Voir aussi