Q:

What is a JavaScript Blob object, why is it useful?

I recently ran into the JavaScript Blob object, I used it to initialize a web worker where the code was contained within a script tag in the document.
Based on the MDN documentation:

A Blob object represents a file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format.

It sounds like it acts as a sack to put a collection of things into that all share a MIME type. Am I wrong in this opinion, is this opinion incomplete?
Why is the object needed/useful?

A:

Blobs aren't terribly useful on their own. What's useful about them is that they work with many calls which are meant to process Files. The most important of these is URL.createObjectURL(), which can be used to create a URL you can then use in the href or src attributes of HTML tags, @import statements and url() values in CSS, etc.
Basically, Blob gives JavaScript something like temporary files, and URL.createObjectURL() lets you treat those blobs as though they were files on a web server.

A:

You may need to send through an API where a URL is expecting data that is file-like.

Blobs allow you to construct file like objects on the client that you can pass to apis that expect urls instead of requiring the server provides the file. 

See more here.

