Blob
- 表示一个不可变、原始数据的类文件对象
- 它的数据可以按照文本或二进制格式读取
File
接口基于Blob
,继承了Blob
的功能并将其扩展使其支持用户系统上的文件File
提供有关文件的信息,并允许网页中的JavaScript访问其内容
-
ArrayBuffer
用来表示通用的、固定长度的原始二进制数据缓存区
- 是一个字节数组,通常在其它语言中称为
byte array
ArrayBuffer
中的内容不能直接操作,需要通过类型数组对象
或DataView
对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容可以从Base64字符串或者本地文件中获取ArrayBuffer
let buffer = new ArrayBuffer(8) // 指定一个字节长度为8的ArrayBuffer对象
Typed Arrays 类型数组
类似数组的对象,并提供了一种用于访问原始二进制数据的机制
注意与正常数组对象区分
缓冲
- 描述的是一个数据块,由
ArrayBuffer
对象实现 - 不具有格式,且不提供机制访问其内容
- 描述的是一个数据块,由
视图
一个可以从二进制
ArrayBuffer
对象中读取多种数值类型的底层接口- 使用时不用考虑不同平台的字节序问题
语法
```javascript /*
- buffer 一个已经存在的ArrayBuffer对象,数据源
- byteOffset 第一个字节在buffer中的字节偏移,默认从第一个字节开始
- byteLength 字节长度,默认是buffer的长度
*/
new DataView(buffer [, byteOffset [, byteLength]])
```
FileReader
- 允许web应用程序异步读取存储在用户计算机上的文件(或原始数据缓存区的内容)
- 使用
File
或Blob
对象指定要读取的文件或数据let reader = new FileReader(file)
事件处理
onload
load
事件,在读取操作完成时触发onloadstart
loadstart
事件,在读取操作开始时触发onloadend
loadend
事件,在读取操作结束时(成功/失败)触发onprogress
progess
事件,在读取Blob
时触发onabort
abort
事件,在读取操作被中断时触发onerror
error
事件,在读取操作发生错误时触发方法
在读取指定Blob中的内容完成后,读取的数据保存在
result
属性中