capypad
0 Tage Serie
javascript / expert
Snippet

Low-Level Binär-Manipulation mit DataView

DataView bietet eine Low-Level-Schnittstelle zum Lesen und Schreiben mehrerer Zahlentypen in einem ArrayBuffer, unabhängig von der Endianness der Plattform. Dies ist entscheidend für die Implementierung von Binärprotokollen, Dateiparsern oder Hochleistungsnetzwerken, bei denen eine Byte-perfekte Ausrichtung erforderlich ist.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
 
// Write a 32-bit integer at byte 0 in Big-Endian
view.setUint32(0, 0x12345678, false);
 
// Read the first byte
const firstByte = view.getUint8(0);
console.log(firstByte.toString(16)); // '12'
 
// Read as Little-Endian to see the difference
const leValue = view.getUint32(0, true);
console.log(leValue.toString(16)); // '78563412'
Erklärung
1
new DataView(buffer)
Erstellt eine Ansicht über den rohen Speicherpuffer für strukturierten Zugriff.
2
view.setUint32(0, ..., false)
Schreibt 4 Bytes ab Offset 0 unter Verwendung der Big-Endian-Bytereihenfolge.