Blob是JAVAScript內建對象,表示不可變的原始數據的類似文件的對象。
blob是表示原始數據的不可變對象,這些數據不一定是JavaScript原生格式的,文件接口基于Blob,繼承Blob功能并將其擴展為支持用戶系統上的文件。
Blob有很多用途:
- 可以從網絡的內容創建。
- 可以保存到磁盤或從磁盤讀取。
- 例如,它們是FileReader API中使用的File的基礎數據結構。
我們可以使用 Blob() 構造函數從其他非blob對象和數據構造Blob。
Blob構造函數
Blob構造函數允許從其他對象創建Blob。例如,從字符串構造Blob。
let hero = {name: 'Batman'}
let blobObject = new Blob([JSON.stringify(hero, null, 2)], { type: 'Application/json' });
console.log(blobObject);
現在,如果我們在瀏覽器中運行此文件,我們將在瀏覽器控制臺中看到以下輸出。

Blob size 屬性
Blob.size 屬性返回Blob或File的大小(以字節為單位)。
var sizeInBytes = blob.size
參見以下示例。
let hero = {name: 'Batman'}
let blobObject = new Blob([JSON.stringify(hero, null, 2)],{ type: 'application/json' });
console.log(blobObject.size);
將會輸出

Blob.slice() 方法
Blob.slice() 函數用于創建新的Blob對象,該對象包含源Blob的指定字節范圍內的數據。
instanceOfBlob.slice([start [, end [, contentType]]]);
參見以下代碼。
let hero = {name: 'Batman'}
let blobObject = new Blob([JSON.stringify(hero, null, 2)], { type: 'application/json' });
console.log(blobObject.slice(10, 16, { type: 'application/json' }));
輸出

總結
使用二進制遠程文件時,Blob非常有用。
Blob可能非常大,即也可能包含音頻和視頻數據。可以動態創建它們,并使用Blob URL用作文件。我們可以通過多種不同方式使用它們,以使它們更有用。