Why it doesn't work?

作業のメモ、記録をブログに残しています。

JavaScript バイナリデータを扱う。4バイトの数値の配列をunsigned long(uint32)型の数値へ変換する

JavaScript バイナリファイルを読み込む - Why it doesn't work?
続きです。やりたいことは、バイナリの配列から4バイトを抜きだしてunsigned long(uint32)型の数値として扱いたいといことです。

DataViewを使用します。DataViewはバイナリデータのバッファ(ArrayBuffer)に含まれている数値型を制御するためのオブジェクトで、DataViewを使用するメリットとしては、エンディアンの指定が出来ることです。

var bytes = [232, 150 ,251 ,90];
var dv = new DataView(Uint8Array.from(bytes ).buffer);
var value= dv.getUint32(0, true);
console.log(value);

getUint32メソッドの第二引数がtrueの場合に、リトルエンディアンとして扱われます。

結果は、

1526437608

となります。
falseを指定すると、ビッグエンディアンとして扱われ、結果は、

3902208858

となります。

なお、配列が4バイト以下の場合にはエラーが発生するので注意してください。
Uncaught RangeError: Offset is outside the bounds of the DataView