DEV Community

MANIKANDAN
MANIKANDAN

Posted on

The Hidden Life of JavaScript

JavaScript is one of the most widely used programming languages today. Whether you are browsing social media, shopping online, or using a web app, JavaScript is likely working behind the scenes. But have you ever wondered how JavaScript actually runs?

We will explore:

  1. What a JavaScript Engine is
  2. How Does a JavaScript Engine Work

What is a JavaScript Engine?

A JavaScript engine is a specialised program that reads, understands, and executes JavaScript code. Think of it as the interpreter that takes the code you write and transforms it into actions your computer can perform.

Popular JavaScript engines include:

  • V8 (used in Google Chrome )
  • SpiderMonkey (used in Mozilla Firefox)
  • JavaScriptCore (used in Safari)

Each engine is unique in its implementation, but the core principles remain the same.

How Does a JavaScript Engine Work?

1. Parsing: Understanding the Code

The first step is parsing, where the engine converts JavaScript into an Abstract Syntax Tree (AST)— a structured representation it understands.

Think of this process as breaking the code into small, logical pieces to analyze its purpose. For example:

console.log("Hello bro");
Enter fullscreen mode Exit fullscreen mode

The engine identifies this as a function call (console.log)with the argument "Hello bro".

2. Compilation: Preparing for Execution

Modern JavaScript engines use Just-In-Time (JIT) Compilation, converting JavaScript into machine code just before execution. This makes it run much faster than interpreting line by line.

3. Execution: Running the Code

Once compiled, the engine runs the machine code. For example, if your code includesconsole.log("Hello!"), it prints "Hello!" to the console.

Key Components of a JavaScript Engine

To perform these tasks, the engine relies on three main components:

1. Memory Heap

This is where data like variables, objects, and functions are stored. Think of it as a storage area where the engine keeps track of everything your code needs.

2. Call Stack

The call stack keeps track of what the engine is currently working on. When a function is called, it is added to the stack. Once the function finishes, it is removed from the stack.

3. Garbage Collector

As your program runs, some data is no longer needed. The garbage collector automatically clears this data from memory to keep things efficient and prevent your application from slowing down.

let user = {
  name: "Mani"
};

user = null; // object is no longer reachable
Enter fullscreen mode Exit fullscreen mode

Main Garbage Collection Method: Mark and Sweep

This is how JavaScript engines work internally:

  1. Start from root objects (global variables, current function variables)
  2. Mark all reachable objects
  3. Sweep (delete) all unmarked objects

Summary

A JavaScript engine is an incredible piece of technology that brings your code to life. It is built for speed and efficiency to parse, compile, and handle asynchronous tasks with the Event Loop.

Stop here. Come back tomorrow ....Hava a good day

Top comments (1)

Collapse
 
sathish_226_ profile image
Sathish A

Excellent Manikandan, easy to understand content with deep fundamental coverage. Keep sharing!!