JavaScript有两种在浏览器中表示二进制数据的主要方式。ArrayBuffers / TypedArrays包含可变的(尽管长度仍然固定)二进制数据,您可以直接对其进行操作。Blob包含不可变的二进制数据,这些数据只能通过异步File接口访问。
var blob = new Blob(["\x01\x02\x03\x04"]), fileReader = new FileReader(), array; fileReader.onload = function() { array = this.result; console.log("Array contains", array.byteLength, "bytes."); }; fileReader.readAsArrayBuffer(blob);
var blob = new Blob(["\x01\x02\x03\x04"]); var arrayPromise = new Promise(function(resolve) { var reader = new FileReader(); reader.onloadend= function() { resolve(reader.result); }; reader.readAsArrayBuffer(blob); }); arrayPromise.then(function(array) { console.log("Array contains", array.byteLength, "bytes."); });
var array = new Uint8Array([0x04, 0x06, 0x07, 0x08]); var blob = new Blob([array]);