JavaScript Interview Question #149

What are Web Workers?

Generators, Browser Storage, Security & Advanced Runtime Concepts Senior Advanced

Quick Interview Answer

Web Workers allow JavaScript code to run in a background worker context separate from the page's main execution thread. They are useful for CPU-intensive work that would otherwise make the user interface unresponsive.

Detailed Explanation

Web Workers allow JavaScript code to run in a background worker context separate from the page's main execution thread. They are useful for CPU-intensive work that would otherwise make the user interface unresponsive.

Workers do not directly manipulate the page DOM. The main page and worker normally communicate through message passing, and transferred or cloned data must follow the platform's messaging rules.

Code Example

// main.js
const worker = new Worker("./worker.js");

worker.postMessage({ start: 1, end: 1000000 });

worker.onmessage = event => {
    console.log("Result:", event.data);
};

// worker.js
// self.onmessage = event => {
//     const result = doHeavyCalculation(event.data);
//     self.postMessage(result);
// };