Get started with 33% off your first certification using code: 33OFFNEW

Understanding Blobs in JavaScript

2 min read
Published on 29th June 2023

JavaScript, a powerful and flexible language, offers many features that make it a staple for client-side web development. One of these features is the Blob object, a fundamental data type that plays a crucial role when dealing with binary data.

What is a Blob?

A Blob (Binary Large OBject) is an immutable object in JavaScript that represents raw, unprocessed data. This data can be of any type and is not limited to binary. Blobs are typically used to store data such as images, audio, or other multimedia files, though they can hold almost any data type.

The data contained in a Blob is not necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to provide features like name and lastModified.

Creating a Blob

You can create a Blob object in JavaScript using the Blob constructor. Here's a simple example:

let helloBlob = new Blob(["Hello, Blob!"], {type : "text/plain"});

In the example above, the Blob constructor takes two arguments:

  • An array of data parts: This could be a simple array of strings, ArrayBuffer, ArrayBufferView (a typed array), Blob objects, or a mix of any of the above.
  • An options object: This is optional and can be used to specify the MIME type of the data.

Reading a Blob

let reader = new FileReader();
reader.onload = function() {
  console.log(reader.result);
}
let blob = new Blob(["Hello, Blob!"], {type : "text/plain"});
reader.readAsText(blob);

In this example, the readAsText method is used to read the content of the blob as a string.

Blob URLs

Blobs can also be used to create URLs that can be used to link or display binary data such as an image. This is done using the URL.createObjectURL() method.

Here's an example:

let blob = new Blob(["Hello, Blob!"], {type : "text/plain"});
let blobUrl = URL.createObjectURL(blob);

// Now you can use blobUrl to display the data
console.log(blobUrl); // Outputs something like: blob:http://your-url.com/550e8400-e29b-41d4-a716-446655440000

The URL.createObjectURL() method creates a DOMString containing an URL representing the object given in the parameter.

In summary, the Blob object is a powerful tool in JavaScript for handling raw data. It is particularly useful for working with binary objects where you need to manipulate files, such as images or multimedia content. Understanding how to use Blobs effectively can greatly expand your JavaScript capabilities when handling complex data types.

You can read more about Blobs, and their Web API on the MDN docs.