ArrayBuffer

了解什麼是ArrayBuffer以及如何使用它 就像Blob是對磁碟上可用數據的不透明表示一樣,ArrayBuffer是對內存中可用位元組的不透明表示。 構造函數接受一個參數,即以位元組為單位的長度: const buffer = new ArrayBuffer(64) ArrayBuffer有一個(只讀)屬性:byteLength,正如其名,表示其長度以位元組為單位。 它還提供了一個slice()實例方法,從現有ArrayBuffer中創建新的ArrayBuffer,接受一個起始位置和一個可選的長度: const buffer = new ArrayBuffer(64) const newBuffer = buffer.slice(32, 8) 通過ArrayBuffer從互聯網下載數據 我們可以使用XHR從互聯網下載blob,並將其存儲到ArrayBuffer中: const downloadBlob = (url, callback) => { const xhr = new XMLHttpRequest() xhr.open('GET', url) xhr.responseType = 'arraybuffer' xhr.onload = () => { callback(xhr.response) } xhr.send(null) }

URL物件

了解什麼是URL物件以及如何使用它。 URL是一個用於使用Blob來操作URL的命名空間,並提供了2個靜態方法: URL.createObjectURL() URL.revokeObjectURL() 使用URL.createObjectURL()函數可根據Blob生成URL: const myURL = URL.createObjectURL(aBlob) 一旦你有了Blob URL,你可以通過以下代碼從內存中銷毀它: URL.revokeObjectURL(myURL) 除此之外,URL還通過其構造函數提供了一個完全不同的功能,它可以用來創建URL。你可以這樣調用它: const currentUrl = new URL(window.location.href) 現在,currentUrl有一組屬性,你可以使用它來檢查URL的各個部分: hash:哈希片段 host:域名+端口 hostname:域名 href:包含整個URL origin:協議+域名+端口 password pathname port protocol search searchParams username 這些都是URL的常見部分。你可以修改其中任何一部分,除了origin和searchParams,它們是只讀的。你可以通過調用toString()方法或引用href屬性來生成新的URL字符串。