1,定義
Blob,英文Binary large Object,在mdn上的解釋是Blob對象表示不可變的類似文件對象的原始數據 。Blob() 構造函數返回一個新的 Blob 對象。
var aBlob = new Blob( array, options );
-
array 是一個由ArrayBuffer, ArrayBufferView, Blob, DOMString 等對象構成的 Array ,或者其他類似對象的混合體,它將會被放進 Blob。DOMStrings會被編碼爲UTF-8。
-
options 它可能會指定如下兩個屬性:
type,默認值爲 “”,它代表了將會被放入到blob中的數組內容的MIME類型。
endings,默認值爲"transparent",用於指定包含行結束符\n的字符串如何被寫入。
詳細解釋參考:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob/Blob
ArrayBuffer,我的理解是ArrayBuffer代表內存之中的一段二進制數據 ,一旦生成不能再改。
2,常用場景,前端創建文件並下載
例子如下
var debug = {hello: "world"};
//使用blob創建一個類文件對象
var blob = new Blob([JSON.stringify(debug, null, 2)], {type : 'application/json'});
//以下是下載過程
var body = document.querySelector('body');
var link = document.createElement('a');
link.download = 'test.json';
link.href = window.URL.createObjectURL(blob);
body.appendChild(link);
link.click();
body.removeChild(link);