[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/microlee/javascript-tutorial/master/docs/bom/arraybuffer.md [Back]  [Original]

# ArrayBuffer Blob 

## ArrayBuffer 

ArrayBuffer JavaScript 

 ES6 ES6 

`ArrayBuffer()`

```javascript
var buffer = new ArrayBuffer(8);
```

`buffer`8

ArrayBuffer `byteLength`

```javascript
var buffer = new ArrayBuffer(8);
buffer.byteLength // 8
```

ArrayBuffer `slice()`0

```javascript
var buf1 = new ArrayBuffer(8);
var buf2 = buf1.slice(0);
```



## Blob 

### 

Blob  Blob  Binary Large Object  ArrayBuffer  ArrayBuffer 

`Blob()`

```javascript
new Blob(array [, options])
```

`Blob``Blob``type` MIME 

```javascript
var htmlFragment = ['hey!'];
var myBlob = new Blob(htmlFragment, {type : 'text/html'});
```

`myBlob``text/html`

Blob  JSON 

```javascript
var obj = { hello: 'world' };
var blob = new Blob([ JSON.stringify(obj) ], {type : 'application/json'});
```

### 

`Blob``size``type`

```javascript
var htmlFragment = ['hey!'];
var myBlob = new Blob(htmlFragment, {type : 'text/html'});

myBlob.size // 32
myBlob.type // "text/html"
```

`Blob``slice``Blob`

```javascript
myBlob.slice(start, end, contentType)
```

`slice`0`size`

### 

```value`

 FileList  File File  Blob `name``lastModifiedDate`

```javascript
// HTML 
// 

function fileinfo(files) {
  for (var i = 0; i < files.length; i++) {
    var f = files[i];
    console.log(
      f.name, // 
      f.size, // Blob 
      f.type, // Blob 
      f.lastModifiedDate // 
    );
  }
}
```

 API `dataTransfer.files`FileList  File 

### 

AJAX `responseType``blob` Blob 

```javascript
function getBlob(url, callback) {
  var xhr = new XMLHttpRequest();
  xhr.open('GET', url);
  xhr.responseType = 'blob';
  xhr.onload = function () {
    callback(xhr.response);
  }
  xhr.send(null);
}
```

`xhr.response` Blob 

###  URL

`URL.createObjectURL()` Blob  URL API  URL `blob://` Blob  Blob `data://URL`URL `file://URL`

```javascript
var droptarget = document.getElementById('droptarget');

droptarget.ondrop = function (e) {
  var files = e.dataTransfer.files;
  for (var i = 0; i < files.length; i++) {
    var type = files[i].type;
    if (type.substring(0,6) !== 'image/')
      continue;
    var img = document.createElement('img');
    img.src = URL.createObjectURL(files[i]);
    img.onload = function () {
      this.width = 100;
      document.body.appendChild(this);
      URL.revokeObjectURL(this.src);
    }
  }
}
```

 URL

 Blob URL  URL  Blob 404403Blob URL  GET 200 Blob URL  URL

### 

 Blob `FileReader` Blob 

FileReader  Blob Blob 

- `FileReader.readAsText()` UTF-8
- `FileReader.readAsArrayBuffer()` ArrayBuffer 
- `FileReader.readAsDataURL()` Data URL
- `FileReader.readAsBinaryString()`

`FileReader.readAsText()`

```javascript
// HTML 
// 

Web Proxy Viewer  |  New URL  |  Original Page