ArrayBuffer 表示二进制数据的原始缓冲区,该缓冲区用于存储各种类型化数组的数据。是最基础的原始数据容器,无法直接读取或写入, 需要通过其他方式来读写。如:
| 12
 3
 4
 5
 6
 7
 
 | Int8Array             8位有符号整数Uint8Array            8位无符号整数
 Uint8ClampedArray     8位无符号整数,像素操作
 
 Int16Array            16位有符号整数
 Uint16Array           16位无符号整数
 ...
 
 | 
ArrayBuffer 的构造函数:
方法:
接下来通过一个例子来直观地了解它的用法。比如我们上传一个文件,读取文件内容并将其转换为字符串:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | function FileToString(file) {var r = new FileReader();
 var buffer = r.readAsArrayBuffer(file);
 var uint8arr = new Uint8Array(buffer);
 var str = '';
 for(var i=0; i<uint8arr.length; i++) {
 
 str += String.fromCharCode(uint8arr[i]);
 }
 return str;
 }
 
 | 
我们了解了 ArrayBuffer 转字符串,接下来看看如何将字符串转换为 ArrayBuffer:
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | function StringToBuffer(str) {var buffer = new ArrayBuffer(str.length);
 var uint8arr = new Uint8Array(buffer);
 for(var i=0; i<str.length; i++) {
 
 uint8arr[i] = str.charCodeAt(i);
 }
 return buffer;
 }
 
 |