How JavaScript engine works before execution

🤔 𝗕𝗲𝗳𝗼𝗿𝗲 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝘀𝘁𝗮𝗿𝘁𝘀 𝗲𝘅𝗲𝗰𝘂𝘁𝗶𝗻𝗴... 𝘄𝗵𝗮𝘁 𝗮𝗰𝘁𝘂𝗮𝗹𝗹𝘆 𝗵𝗮𝗽𝗽𝗲𝗻𝘀 𝗶𝗻𝘀𝗶𝗱𝗲 𝘁𝗵𝗲 𝗲𝗻𝗴𝗶𝗻𝗲? I was revisiting some JS fundamentals and came across something interesting — Before 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻 𝗖𝗼𝗻𝘁𝗲𝘅𝘁, 𝗖𝗮𝗹𝗹 𝗦𝘁𝗮𝗰𝗸, or 𝗦𝗰𝗼𝗽𝗲 𝗖𝗵𝗮𝗶𝗻 even exist… the JS engine has already done a lot of work. ⚙️ 𝗦𝗼 𝘄𝗵𝗮𝘁 𝗱𝗼𝗲𝘀 𝗮 𝗝𝗦 𝗲𝗻𝗴𝗶𝗻𝗲 𝗱𝗼 𝗯𝗲𝗳𝗼𝗿𝗲 𝗲𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻? Let’s take Google Chrome’s V8 Engine (also used in Node.js) as an example: 1️⃣ Reads your code as plain text 2️⃣ Breaks it into small tokens (let, {}, function, etc.) 3️⃣ Builds a structured tree called 𝗔𝗦𝗧 (𝗔𝗯𝘀𝘁𝗿𝗮𝗰𝘁 𝗦𝘆𝗻𝘁𝗮𝘅 𝗧𝗿𝗲𝗲) 4️⃣ Checks for syntax errors here (before running anything) 5️⃣ Converts AST → 𝗕𝘆𝘁𝗲𝗰𝗼𝗱𝗲, ready for execution Only 𝗮𝗳𝘁𝗲𝗿 𝗮𝗹𝗹 𝘁𝗵𝗶𝘀 — the 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻 𝗖𝗼𝗻𝘁𝗲𝘅𝘁 is created, hoisting happens, and your code finally starts running. And yes, this process isn’t just for 𝗩𝟴 (𝗖𝗵𝗿𝗼𝗺𝗲 / 𝗡𝗼𝗱𝗲.𝗷𝘀) — 𝗦𝗽𝗶𝗱𝗲𝗿𝗠𝗼𝗻𝗸𝗲𝘆 (Firefox), 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁𝗖𝗼𝗿𝗲 (Safari), and even 𝗖𝗵𝗮𝗸𝗿𝗮 (old Edge) do something similar. Different engines, same concept: 𝗣𝗮𝗿𝘀𝗲 → 𝗔𝗦𝗧 → 𝗕𝘆𝘁𝗲𝗰𝗼𝗱𝗲 → 𝗘𝘅𝗲𝗰𝘂𝘁𝗲 → 𝗢𝗽𝘁𝗶𝗺𝗶𝘇𝗲 It’s wild how much JavaScript does before we even hit that first 𝘤𝘰𝘯𝘴𝘰𝘭𝘦.𝘭𝘰𝘨() 😅 #javascript #v8engine #javascriptcore #nodejs #executioncontext #namastejavascript #programming #learninpublic #frontend #backend #techcommunity

There's a great course by Will Sentance, Javascript the hard parts v2 on frontendmasters

To view or add a comment, sign in

Explore content categories