capypad
0 day streak
javascript / expert
Snippet

Low-Level Binary Manipulation with DataView

DataView provides a low-level interface for reading and writing multiple number types in an ArrayBuffer, regardless of the platform's endianness. This is critical for implementing binary protocols, file parsers, or high-performance networking where byte-perfect alignment is required.

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'
Breakdown
1
new DataView(buffer)
Creates a view over the raw memory buffer for structured access.
2
view.setUint32(0, ..., false)
Writes 4 bytes starting at offset 0 using Big-Endian byte order.