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 : propriété byteLength

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.

La propriété accesseur byteLength des instances de DataView retourne la longueur (en octets) de cette vue.

Exemple interactif

// Créer un ArrayBuffer avec une taille en octets
const buffer = new ArrayBuffer(16);

const view1 = new DataView(buffer);
const view2 = new DataView(buffer, 12, 4); // À partir de l'octet 12 pour les 4 octets suivants

console.log(view1.byteLength + view2.byteLength); // 16 + 4
// Résultat attendu : 20

Description

La propriété byteLength est une propriété accesseur dont la fonction d'accesseur d'écriture est undefined, ce qui signifie que vous pouvez uniquement lire cette propriété. Si le DataView est un suivi de la longueur, alors sa longueur dépend de la longueur du tampon sous-jacent, et peut changer si le tampon est redimensionné. Sinon, la valeur est définie lors de la construction du DataView et ne peut pas être modifiée. Que le suivi de longueur soit activé ou non, la valeur de byteLength devient 0 si le tampon sous-jacent est redimensionné de sorte que la plage visualisée n'est plus valide.

Exemples

Utiliser la propriété byteLength

js
const buffer = new ArrayBuffer(8);
const dataview = new DataView(buffer);
dataview.byteLength; // 8 (correspond au byteLength du buffer)

const dataview2 = new DataView(buffer, 1, 5);
dataview2.byteLength; // 5 (correspond à la longueur utilisée pour la définition)

const dataview3 = new DataView(buffer, 2);
dataview3.byteLength; // 6 (en raison du décalage (offset) pour la construction du DataView)

const buffer2 = new ArrayBuffer(16, { maxByteLength: 32 });
const dataviewLengthTracking = new DataView(buffer2, 4);
dataviewLengthTracking.byteLength; // 12 (16 - 4)
buffer2.resize(20);
dataviewLengthTracking.byteLength; // 16 (20 - 4)
buffer2.resize(3);
dataviewLengthTracking.byteLength; // 0 (la plage visualisée n'est plus valide)

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-get-dataview.prototype.bytelength

Compatibilité des navigateurs

Voir aussi