javascript的blob是什么_如何处理二进制数据?

Blob 是 JavaScript 中表示不可变原始二进制数据的内置对象,用于安全高效封装文件、图片等非文本内容;其不可修改、支持 MIME 类型标记、需通过 URL.createObjectURL 或 FileReader 等桥接操作。

javascript的blob是什么_如何处理二进制数据?

Blob 是 JavaScript 中用于表示不可变、原始二进制数据的内置对象,常用于处理文件、图片、音频、PDF 等非文本内容。它不直接暴露内部字节,而是提供一种安全、高效的方式封装和传递二进制数据。

Blob 的核心特点

Blob 本身不是数组或 Buffer,而是一个“数据容器”: – 构造后不可修改(immutable) – 支持按类型(type)标记 MIME 类型,如 “image/png”application/pdf – 实际数据存在浏览器内存中,不会立即解码或解析 – 可通过 URL.createObjectURL() 转为临时 URL,在 img、a、video 等标签中直接使用

如何创建 Blob 对象

常用构造方式是传入数据片段(字符串、ArrayBuffer、TypedArray、其他 Blob)和可选配置:

从字符串创建(注意编码):
new Blob([“hello”], { type: “text/plain” })从 Uint8Array 创建(推荐处理二进制):
new Blob([new Uint8Array([0x48, 0x65, 0x6C, 0x6C, 0x6F])], { type: “text/plain” })合并多个 Blob:
new Blob([blob1, blob2, arrayBuffer])

读取和解析 Blob 中的二进制数据

Blob 不能直接 .slice() 或遍历字节,需借助 FileReader 或响应式 API:

用 FileReader 读为 ArrayBuffer:
fr.readAsArrayBuffer(blob) → 在 onload 中获取 fr.result(即原始字节)读为 base64:
fr.readAsDataURL(blob) → 结果含前缀 “data:…;base64,…”读为文本(仅适用于可编码字符):
fr.readAsText(blob, “utf-8”)现代替代:用 blob.arrayBuffer()(返回 Promise)更简洁:
const buf = await blob.arrayBuffer(); const view = new Uint8Array(buf);

常见实用场景与技巧

实际开发中 Blob 常用于以下情况:

立即学习“Java免费学习笔记(深入)”;

下载生成的文件:创建 Blob + createObjectURL + a.download
const url = URL.createObjectURL(blob); a.href = url; a.download = “report.pdf”; a.click(); URL.revokeObjectURL(url);预览用户选择的图片:直接赋值给 img.src
img.src = URL.createObjectURL(fileInput.files[0]);分片上传大文件:用 blob.slice(start, end) 切出小块,逐个发送避免内存泄漏:用完临时 URL 后务必调用 URL.revokeObjectURL(url)

基本上就这些。Blob 不复杂但容易忽略细节——关键记住它是个“包装器”,真正操作二进制得靠 ArrayBuffer + TypedArray,而展示或传输则靠 URL 或 FileReader 桥接。

以上就是javascript的blob是什么_如何处理二进制数据?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1542908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 14:36:07
下一篇 2025年12月21日 14:36:21

相关推荐

发表回复

登录后才能评论
关注微信