Blob全称为binary large object ,即二进制大对象。blob对象本质上是js中的一个对象,里面可以储存大量的二进制编码格式的数据。Blob对象的特点:
new Blob(array,options)
array:由ArrayBuffer、ArrayBufferView、Blob、DOMString等对象构成的,将会被放进Blob;
options:
| MIME类型 | 描述 |
| text/plain | 纯文本文档 |
| text/html | HTML文档 |
| text/javascript | JavaScript文档 |
| text/css | CSS文件 |
| application/json | JSON文件 |
| application/pdf | PDF文件 |
| application/xml | XML文件 |
| image/jpeg | JPEG图像 |
| image/png | PNG图像 |
| image/gif | GIF图像 |
| image/svg+xml | SVG图像 |
| audio/mpeg | MP3文件 |
| video/mpeg | MP4文件 |
- let blob = new Blob(['helloworld'],{type:"text/plain"});
- console.log(blob);

Blob的属性
Blob对象内置了slice()方法用来将blob对象分片
其有三个参数
Demo实例:
- let blob1 = blob.slice(0,2,"text/plain");
- console.log(blob1);

ArrayBuffer是一个特殊的数组。本身就是一个黑盒,不能直接读写所存储的数据,需要借助以下视图对象来读写。视图对象包含:
Int8Array、Uint8Array、Int16Array、Uint16Array、Int32Array、Uint32Array、Float32Array、Float64Array、Uint8ClampedArray。
TypeArray视图和DataView视图的区别主要是字节序,前者的数组成员都是同一个数据类型,后者的数组成员可以是不同的数据类型。
- let buffer = new ArrayBuffer(32);
- console.log(buffer);
- let u8 = new Uint8Array(buffer);
- console.log(u8);
- u8[0]=100;
- console.log(u8);
运行结果:

- let buffer = new ArrayBuffer(32);
- console.log(buffer);
- let d8 = new DataView(buffer);
- console.log(d8);
- console.log(d8.getInt8(1));
- //设置
- d8.setInt8(1,100);
- console.log(d8.getInt8(1));
运行结果:
