500 Can't connect to stackoverflow.com:443 (certificate verify failed) の回答であったやつだけど、String.fromCharCode が複数文字を引数にできることを知った。String.fromCharCode、なぜか1文字しか渡せないと思いこんでいたので、なんとなくびっくりした。

console.log(String.fromCharCode.apply(null, [97, 98, 99]));
//=> "abc"

つまりこれは ArrayBuffer とかを String に変換するときにとても簡単に書ける。以下の例は 8bit のビューを作っているが、元記事のように必要に応じて 16bit のビューを作って渡すこともできる。

var buffer = new ArrayBuffer(10);
for (var i = 0; i < buffer.byteLength; i++) {
	buffer[i] = 97 + i;
}
console.log(String.fromCharCode.apply(null, new Uint8Array(buffer)));
//=> "abcdefghij"
  1. トップ
  2. tech
  3. JavaScript ArrayBuffer -> String 変換
▲ この日のエントリ