JavaScript Blob對(duì)象原理及用法詳解
Blob是JavaScript內(nèi)建對(duì)象,表示不可變的原始數(shù)據(jù),類似文件的對(duì)象。
blob是表示原始數(shù)據(jù)的不可變對(duì)象,這些數(shù)據(jù)不一定是JavaScript原生格式的,文件接口基于Blob,繼承Blob功能并將其擴(kuò)展為支持用戶系統(tǒng)上的文件。
Blob有很多用途:
可以從網(wǎng)絡(luò)的內(nèi)容創(chuàng)建。
可以保存到磁盤(pán)或從磁盤(pán)讀取。
例如,它們是FileReader API中使用的File的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)。
我們可以使用 Blob() 構(gòu)造函數(shù)從其他非blob對(duì)象和數(shù)據(jù)構(gòu)造Blob。
Blob構(gòu)造函數(shù)
Blob構(gòu)造函數(shù)允許從其他對(duì)象創(chuàng)建Blob。例如,從字符串構(gòu)造Blob。
let hero = {name: ’Batman’}let blobObject = new Blob([jsON.stringify(hero, null, 2)], { type: ’application/json’ });console.log(blobObject);
現(xiàn)在,如果我們?cè)跒g覽器中運(yùn)行此文件,我們將在瀏覽器控制臺(tái)中看到以下輸出。

Blob size 屬性
Blob.size 屬性返回Blob或File的大小(以字節(jié)為單位)。
var sizeInBytes = blob.size
參見(jiàn)以下示例。
let hero = {name: ’Batman’}let blobObject = new Blob([JSON.stringify(hero, null, 2)],{ type: ’application/json’ });console.log(blobObject.size);
將會(huì)輸出:22
Blob.slice() 方法
Blob.slice() 函數(shù)用于創(chuàng)建新的Blob對(duì)象,該對(duì)象包含源Blob的指定字節(jié)范圍內(nèi)的數(shù)據(jù)。
instanceOfBlob.slice([start [, end [, contentType]]]);
參見(jiàn)以下代碼。
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’ }));
輸出

總結(jié)
使用二進(jìn)制遠(yuǎn)程文件時(shí),Blob非常有用。
Blob可能非常大,即也可能包含音頻和視頻數(shù)據(jù)??梢詣?dòng)態(tài)創(chuàng)建它們,并使用Blob URL用作文件。我們可以通過(guò)多種不同方式使用它們,以使它們更有用。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. php模擬實(shí)現(xiàn)斗地主發(fā)牌2. Python random庫(kù)使用方法及異常處理方案3. 理解PHP5中static和const關(guān)鍵字4. spring acegi security 1.0.0 發(fā)布5. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)6. Docker 容器健康檢查機(jī)制7. jQuery 實(shí)現(xiàn)DOM元素拖拽交換位置的實(shí)例代碼8. Vuex localStorage的具體使用9. vue 使用localstorage實(shí)現(xiàn)面包屑的操作10. MyBatis中的JdbcType映射使用詳解

網(wǎng)公網(wǎng)安備