Blobs can hold either text or binary data. Blobs were defined along with the File API in 2009.
Node added the Buffer class in 2011.
The HTML5 specification added Base64 conversion functions (atob and btoa) in 2014.
ArrayBuffers hold binary data, but you cannot manipulate the data directly. To do so, you must convert ArrayBuffers into Typed Arrays or DataViews. Typed Arrays and ArrayBuffers were originally developed for WebGL and were added to ES6 in 2015.