前言
最近在处理文档导出需求时,我重新审视了 Blob 这一概念。作为前端开发者,虽然常听到它,但真正理解其原理和应用场景往往需要实践。经过整理,这里分享一些关于 Blob 技术的核心要点。
什么是 Blob?
Blob(Binary Large Object)是 JavaScript 中表示二进制数据的对象。它是一个不可变的类文件对象,适合存储大量原始数据。
const blob = new Blob(["Hello, world!"], { type: 'text/plain' });
Blob 的基本特性
- 不可变性:一旦创建,
Blob对象的内容无法直接修改 - 类型标识:通过
MIME类型标识数据格式 - 大小存储:可以存储大量二进制数据
- 分片能力:可以被分割成更小的
Blob对象
Blob 的构造函数
构造 Blob 时主要接受两个参数:
new Blob(blobParts, options);
- blobParts:由 ArrayBuffer、ArrayBufferView、Blob、DOMString 等对象构成的数组
- options:可选参数,包含两个属性:
- type:Blob 内容的 MIME 类型
- endings:指定包含行结束符 \n 的字符串如何写入
常见使用场景
1. 文件下载
实现文件下载的核心思路是创建 Blob 对象,生成临时 URL,然后触发下载链接。
function downloadFile(content, filename, type) {
const blob = new Blob([content], { type });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = filename;
a.();
.(url);
}
(, , );


