<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Md Nazmus Shakib</title>
    <description>The latest articles on DEV Community by Md Nazmus Shakib (@nshakib).</description>
    <link>https://dev.to/nshakib</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F673116%2Ffffedcd3-80de-4a65-8864-2cece8d9d3e4.jpg</url>
      <title>DEV Community: Md Nazmus Shakib</title>
      <link>https://dev.to/nshakib</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nshakib"/>
    <language>en</language>
    <item>
      <title>JavaScript Deep Dive Series – Part 1: JS Engine &amp; Runtime 🚀</title>
      <dc:creator>Md Nazmus Shakib</dc:creator>
      <pubDate>Mon, 16 Mar 2026 07:15:39 +0000</pubDate>
      <link>https://dev.to/nshakib/javascript-deep-dive-series-part-1-js-engine-runtime-18j9</link>
      <guid>https://dev.to/nshakib/javascript-deep-dive-series-part-1-js-engine-runtime-18j9</guid>
      <description>&lt;p&gt;&lt;code&gt;This topic helps you understand how JavaScript actually runs behind the scenes.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;আমরা প্রতিদিন JavaScript নিয়ে কাজ করি। কিন্তু যে ভাষা দিয়ে এত কাজ করি, সেটাকে যদি ভেতর থেকে না জানি তাহলে কি ঠিক হয়? সেই চিন্তা থেকেই শুরু করলাম JavaScript Deep Dive Series। চলুন ধীরে ধীরে JavaScript-এর ভেতরের মেকানিজমগুলো বুঝে নেওয়া যাক।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JavaScript Engine কী?&lt;/strong&gt;&lt;br&gt;
JavaScript-এর আসল কাজ করে JavaScript Engine নামের একটি প্রোগ্রাম।&lt;br&gt;
এর মূল কাজ হলো:&lt;br&gt;
JavaScript code read করা&lt;br&gt;
code compile করা&lt;br&gt;
এবং শেষ পর্যন্ত execute করা&lt;/p&gt;

&lt;p&gt;কিন্তু এখানে একটা মজার ব্যাপার আছে। Browser নিজে কিন্তু JavaScript language বুঝতে পারে না। তাহলে browser-এ JavaScript কিভাবে চলে?&lt;br&gt;
সমাধান হলো JavaScript Engine। এই engine JavaScript code কে machine code-এ convert করে, যাতে browser সেটাকে execute করতে পারে।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;জনপ্রিয় JavaScript Engines&lt;/strong&gt;&lt;br&gt;
বিভিন্ন browser তাদের নিজস্ব JavaScript engine ব্যবহার করে।&lt;br&gt;
Chrome → V8&lt;br&gt;
Firefox → SpiderMonkey&lt;br&gt;
Safari → JavaScriptCore&lt;br&gt;
Edge → V8&lt;/p&gt;

&lt;p&gt;আর আমাদের পরিচিত backend runtime Node.js ও V8 engine ব্যবহার করে।&lt;br&gt;
সুতরাং, Chrome এবং Node.js — দুটোই V8 engine ব্যবহার করে JavaScript execute করে।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JavaScript Engine Architecture&lt;/strong&gt;&lt;br&gt;
এখন প্রশ্ন হলো — JavaScript Engine এর ভেতরে কী আছে?&lt;br&gt;
Engine-টা ভেঙে দেখলে মূলত দুইটা প্রধান অংশ দেখা যায়:&lt;br&gt;
JavaScript Engine&lt;br&gt;
├── Memory Heap&lt;br&gt;
└── Call Stack&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory Heap&lt;/strong&gt;&lt;br&gt;
Memory Heap হলো মেমোরির এমন একটি অঞ্চল যেখানে JavaScript dynamically ডেটা সংরক্ষণ করে।&lt;br&gt;
যেমন:&lt;br&gt;
Objects&lt;br&gt;
Arrays&lt;br&gt;
Functions&lt;br&gt;
Closures&lt;br&gt;
DOM elements&lt;br&gt;
সহজভাবে বললে এটাকে একটি বড় storage warehouse হিসেবে ভাবা যায়, যেখানে program execution চলাকালীন ডেটা তৈরি, বড় বা ছোট হতে পারে।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory Heap কেন দরকার?&lt;/strong&gt;&lt;br&gt;
JavaScript program চলাকালীন ক্রমাগত নতুন ডেটা তৈরি হয়।&lt;br&gt;
যেমন:&lt;br&gt;
Object&lt;br&gt;
Array&lt;br&gt;
Function&lt;br&gt;
Closure&lt;br&gt;
DOM element&lt;br&gt;
এই ডেটাগুলোর নির্দিষ্ট আকার থাকে না, তাই এগুলো stack-এ রাখা যায় না।&lt;br&gt;
এই কারণে JavaScript এগুলোকে Heap memory-তে store করে, যেখানে memory dynamically expand করতে পারে।&lt;/p&gt;

&lt;p&gt;উদাহরণ:&lt;br&gt;
const user = {&lt;br&gt;
 name: "Alex"&lt;br&gt;
}&lt;br&gt;
এখানে&lt;br&gt;
{name: "Alex"}&lt;br&gt;
এই object টি Heap memory-তে store হয়।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Call Stack&lt;/strong&gt;&lt;br&gt;
Call Stack হলো JavaScript-এর একটি data structure যা function execution track করতে ব্যবহার হয়।&lt;/p&gt;

&lt;p&gt;সহজভাবে বললে:&lt;br&gt;
যখন কোনো function run হয়&lt;br&gt;
 ➡️ সেটি Call Stack-এ push হয়&lt;/p&gt;

&lt;p&gt;কাজ শেষ হলে&lt;br&gt;
 ⬅️ সেটি pop হয়ে বের হয়ে যায়&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Call Stack structure&lt;/strong&gt;&lt;br&gt;
Call Stack কাজ করে LIFO (Last In, First Out) principle-এ।&lt;br&gt;
অর্থাৎ: যেটা শেষে ঢুকবে সেটাই আগে বের হবে।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Call Stack কেন দরকার?&lt;/strong&gt;&lt;br&gt;
JavaScript engine (যেমন V8) কে জানতে হয়:&lt;br&gt;
কোন function বর্তমানে execute হচ্ছে&lt;br&gt;
কোন function আগে execute হয়েছে&lt;br&gt;
function শেষ হলে কোথায় ফিরে যেতে হবে&lt;br&gt;
এই সব information Call Stack-এ track করা হয়।&lt;/p&gt;

&lt;p&gt;চলবে…&lt;br&gt;
পরবর্তী পর্বে আমরা দেখবো:&lt;br&gt;
Call Stack কীভাবে কাজ করে&lt;br&gt;
Stack overflow কীভাবে হয়&lt;br&gt;
এবং Execution Context কী&lt;/p&gt;

&lt;p&gt;hashtag#Follow the series if you want to truly understand JavaScript from the inside out.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>deepdrive</category>
      <category>javascriptengine</category>
    </item>
  </channel>
</rss>
