How JavaScript Works: JS Engine & Runtime
environment
 1. JavaScript in the Browser:
     o   When you visit a webpage, your browser
         (like Chrome, Firefox, or Safari) loads the
         HTML and CSS to structure and style the
         page.
     o   If the page includes JavaScript (either
         directly in the HTML file or linked as a
         separate .js file), the loads and runs that
         JavaScript code using its built-in JavaScript
         engine (like V8 in Chrome or
         SpiderMonkey in Firefox).
 2. JavaScript Engine:
     o   What It Is: A JavaScript engine is a
         program inside the browser that reads
         and executes JavaScript code. Every
         major web browser has a built-in
         JavaScript engine.
     o   Examples: V8 (Chrome, Node.js),
         SpiderMonkey (Firefox), Chakra (Edge),
         and JavaScriptCore (Safari).
 3. Execution Process:
o   Parsing: The JavaScript engine first reads
    (or "parses") the JavaScript code. It
    checks the syntax to make sure
    everything is written correctly.
o   Compilation: Unlike some languages that
    are compiled ahead of time (like C++),
    JavaScript is often compiled just before or
    even during its execution, in a process
    called Just-In-Time (JIT) compilation.
o   Execution: After parsing and compiling,
    the engine runs the JavaScript code. It
    turns the code into machine-readable
    instructions that the computer's processor
    can understand and execute.
4. Event Loop and Asynchronous Behavior:
    o   Single-Threaded: JavaScript runs in a
        single thread, meaning it can only do one
        thing at a time.
    o   Event Loop: To handle multiple tasks (like
        user inputs, timers, or fetching data from
        a server), JavaScript uses an event loop.
        The event loop constantly checks if there
        are tasks (events) to be executed. If there
        are, it runs them one by one.
    o   Asynchronous Tasks: JavaScript can
        perform certain tasks asynchronously,
        meaning it can start them, then continue
        with other work, and come back to finish
        the task once it’s done. Examples include
        making network requests, reading files, or
        waiting for user interactions.
5. Interacting with the Webpage (DOM):
    o   DOM (Document Object Model): The DOM
        is a structured representation of the HTML
        elements on a webpage. JavaScript can
        interact with the DOM to change the
        content, structure, and style of the
        webpage dynamically.
    o   How It Works: JavaScript can select
        elements on the page (like buttons or
        input fields), change their properties (like
        text, color, or visibility), and respond to
        events (like clicks or form submissions).