什么是JavaScript Blob对象,为什么它有用?

什么是JavaScript Blob对象,为什么它有用?,javascript,Javascript,我最近遇到了JavaScript Blob对象,我使用它初始化了一个web工作者,其中代码包含在文档中的脚本标记中 根据文件: Blob对象表示不可变原始数据的类似文件的对象。BLOB表示不一定采用JavaScript本机格式的数据 听起来它就像一个袋子,将一组东西放入其中,所有东西共享一个MIME类型。我的观点错了吗?这个观点不完整吗 为什么需要/使用该对象?您可能需要通过API发送,其中URL需要类似文件的数据 Blob允许您在客户机上构造类似文件的对象,您可以将这些对象传递给期望URL的A

我最近遇到了JavaScript Blob对象,我使用它初始化了一个web工作者,其中代码包含在文档中的脚本标记中

根据文件:

Blob对象表示不可变原始数据的类似文件的对象。BLOB表示不一定采用JavaScript本机格式的数据

听起来它就像一个袋子,将一组东西放入其中,所有东西共享一个MIME类型。我的观点错了吗?这个观点不完整吗


为什么需要/使用该对象?

您可能需要通过API发送,其中URL需要类似文件的数据

Blob允许您在客户机上构造类似文件的对象,您可以将这些对象传递给期望URL的API,而不需要服务器提供文件


请参阅更多信息。

Blob
s本身并没有太大用处。它们的有用之处在于,它们可以处理许多旨在处理
File
s的调用。其中最重要的是,它可以用来创建URL,然后可以在CSS中HTML标记、语句和值的
href
src
属性中使用


基本上,
Blob
提供了类似于临时文件的JavaScript,并且
URL.createObjectURL()
允许您将这些Blob视为web服务器上的文件。

它只是一个比string()更好的二进制字符串。旁道。没有强制。你可以用它来存储一个mp3或jpg,它不能正确地存储在一个普通的js字符串中。您可以使用FileReader()或URL.createObjectURL()来读取内容,或者在web workers中使用FileReaderSync。@dandavis很好,现在非常有意义,谢谢。这当然符合我使用它的描述。Blob本身与远程URL中的文件不同,您需要先使用FormData来转换它们。Blob本身也不提供URL,尽管您可以使用FileReader或URL.createObjectURL从Blob中创建URL,并且您可以通过xhr.responseType='Blob'从ajax获得它们,因此,虽然您的回答提示了Blob的不同潜在方面,但它并没有提供太多的信息。这也是模拟api调用的好方法