js blob

本文介绍了JavaScript中的Blob对象,主要用于处理二进制大数据。通过Blob构造函数创建Blob对象,可以指定数据和MIME类型。Blob对象支持slice方法进行数据切片,常用于大文件分片上传。此外,Blob URL可以作为资源地址,用于文件下载和图片显示,并通过URL.createObjectURL和URL.revokeObjectURL管理。Blob与Data URL的区别在于长度、资源获取方式和应用范围。
摘要由CSDN通过智能技术生成

js中Blob基本用法
前段时间研究二进制流图片展示遇到了Blob对象,在这里做一下笔记。

在一般的Web开发中,很少会用到Blob,但Blob可以满足一些场景下的特殊需求。Blob,Binary Large Object的缩写,代表二进制类型的大对象。Blob的概念在一些数据库中有使用到,例如,MYSQL中的BLOB类型就表示二进制数据的容器。在Web中,Blob类型的对象表示不可变的类似文件对象的原始数据,通俗点说,就是Blob对象是二进制数据,但它是类似文件对象的二进制数据,因此可以像操作File对象一样操作Blob对象,实际上,File继承自Blob。
Blob基本用法
创建
可以通过Blob的构造函数创建Blob对象:
Blob(blobParts[, options])
参数说明:
blobParts: 数组类型, 数组中的每一项连接起来构成Blob对象的数据,数组中的每项元素可以是ArrayBuffer(二进制数据缓冲区), ArrayBufferView,Blob,DOMString。或其他类似对象的混合体。
options: 可选项,字典格式类型,可以指定如下两个属性:

type,默认值为"“,它代表了将会被放入到blob中的数组内容的MIME类型。
endings, 默认值为"transparent”,用于指定包含行结束符\n的字符串如何被写入。 它是以下两个值中的一个: “native”,表示行结束符会被更改为适合宿主操作系统文件系统的换行符; “transparent”,表示会保持blob中保存的结束符不变。
举个例子:
复制代码
var data1 = “a”;
var data2 = “b”;
var data3 = “

This is a blob
”;
var data4 = { “name”: “abc” };

var blob1 = new Blob([data1]);
var blob2 = new Blob([data1, data2]);
var blob3 = new Blob([data3]);
var blob4 = new Blob([JSON.stringify(data4)]);
var blob5 = new Blob([data4]);
var blob6 = new Blob([data3, data4]);

console.log(blob1);  //输出:Blob {size: 1, type: ""}
console.log(blob2);  //输出:Blob {size: 2, type: ""}
console.log(blob3);  //输出:Blob {size: 44, type: ""}
console.log(blob4);  //输出:Blob {size: 14, type: ""}
console.log(blob5);  //输出:Blob {size: 15, type: ""}
console.log(blob6);  //输出:Blob {size: 59, type: ""}

复制代码

size代表Blob 对象中所包含数据的字节数。这里要注意,使用字符串和普通对象创建Blob时的不同,blob4使用通过JSON.stringify把data4对象转换成json字符串,blob5则直接使用data4创建,两个对象的size分别为14和15。blob4的size等于14很容易理解,因为JSON.stringify(data4)的结果为:“{“name”:“abc”}”,正好14个字节(不包含最外层的引号)。blob5的size等于15是如何计算而来的呢?实际上,当使用普通对象创建Blo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值