JavaScriptでバイナリを読むjDataView

どうしたものかと思っていたところ、typed arrayの仕様の中にDataViewというものがあるようだ。

しかしポータビリティはよくないので、当面はpure JSによる実装であるjDataViewを使ったほうがいいのかもしれない。

こちらはオリジナルのDataViewを拡張しており、ストリームのように使える。また、ロードするとjQueryの$.get()でdataviewを使えるようになるのも嬉しい。

// from ArrayBuffer
var buffer = jDataView.createBuffer(1, 2, 3); // helper

var view = new jDataView(buffer);

console.log(view.getUint8()); // 1
console.log(view.getUint8()); // 2
console.log(view.getUint8()); // 3

// from jQuery
$.get(
  './hello.exe',
  function (view) {
    console.log( view.getString(2) ); // 'MZ'
  },
  'dataview'
);