在js里面,如果想处理二进制,有很多方式,但是由于我之前的项目中并未涉及到二进制相关的处理,所以一直对这块比较陌生,最近抽出时间好好研究了下,所以准备写文章来记录一下

js里处理二进制的方式比较多,列举如下

本篇文章就准备先聊聊 Blob,废话不多说,开搞!

ppx.jpg

什么是Blob

Blob 全称为 binary large object ,即 二进制大对象,MDN对其描述为:Blob对象表示一个 不可变包含原始数据 的类文件对象,它的数据可以按 文本或二进制 的格式进行读取

如何使用Blob

我们可以使用Blob构造函数来创建一个Blob的实例:new Blob(array, options),两个参数的含义为:

当我们拿到Blob的实例后,就可以利用它来处理二进制数据了,通常它有两种使用方式

  1. 结合URL.createObjectURL()来使用
1
2
3
4
const blob = new Blob(["Hello World"], {type: "text/plain"})
const url = URL.createObjectURL(blob)

window.open(url)

通过打开这个链接,可以看到一个显示 Hello World 的网页

  1. 分片,使用Blob提供的 slice 方法,可以将Blob进行分片,语法为
    1
    const blob = instanceOfBlob.slice([start [, end [, contentType]]]};

三个参数的含义分别为

下面给个例子

1
2
3
4
const blob = new Blob(["Hello World"], {type: "text/plain"})
const subBlob = blob.slice(0, 5)

window.open(URL.createObjectURL(subBlob))

通过打开这个链接,可以看到一个显示 Hello 的网页