To manipulate a byte array, in javascript, you have:
let byteLength = 9; // the length of the array (in bytes)
let buffer = new ArrayBuffer(byteLength);
console.log(`byteLength: the length of the ArrayBuffer is ${buffer.byteLength} byte`);
let viewStartByteOffset = 0; // default to 0, same as view.toIndex(byteOffset), immutable
let viewByteLength = 5; // default to the byteLength of the ArrayBuffer, should be less or equal to the byte length of the ArrayBuffer, immutable
let view = new DataView(buffer, viewStartByteOffset, viewByteLength );
console.log(`\nThe byte length of the DataView is ${view.byteLength}`);
console.log(`The byte offset of the DataView is ${view.byteOffset}`);
let value16= 50;
let offset16 = 3; // from 0 to viewByteLength - 2 (because we try to save 2 bytes (ie 16))
view.setInt16(offset16, value16);
console.log(`\nWrite 2 bytes (16bit) at offset ${offset16}`);
console.log(`16bit value is ${view.getInt16(offset16)}`); // 50
offset = 0;
value = 257
let isLittleEndian = false; // default
view.setInt32(offset, value, isLittleEndian);
console.log(`Write 4 bytes (32bit) at offset 0`);
console.log(`32bit value is ${view.getInt32(0)}`); // 257
console.log(`\nThe data of the first operation was overwritten:`);
console.log(`16bit value of offset ${offset16} is ${view.getInt16(offset16)}`);
const buffer = new ArrayBuffer(10);
const view = new Int32Array(buffer);