حافظه Stack و Heap در جاوا اسکریپت
جاوا اسکریپت از دو حوزهی اصلی حافظه برای مدیریت دادهها استفاده میکند: Stack و Heap.( حافظه Stack و Heap در جاوا اسکریپت) درک این تفاوت به بهینهسازی عملکرد و جلوگیری از مشکلات حافظه کمک میکند.
حافظه Stack
- حافظهای با ساختار LIFO (آخر وارد، اول خارج) که برای ذخیرهی دادههای Primitive مانند عدد، رشته، بولین و همچنین برای کالبکها و متغیرهای محلی استفاده میشود.
- بسیار سریع و کارا است و حافظه پس از خروج متغیرها یا پایان اجرای توابع، بهطور خودکار آزاد میشود.
- ظرفیت محدودی دارد و در صورت پر شدن ممکن است با خطای Stack Overflow روبرو شویم.
حافظه Heap
- حافظهای پویا و غیرساختیافته که برای انواع غیر Primitive مانند آبجکت در جاوا اسکریپت ، آرایه و تابع استفاده میشود.
- متغیرها در Stack فقط ارجاع (Reference) به محل داده در Heap را نگه میدارند.
- دسترسی به Heap نسبت به Stack کندتر است، اما امکان ذخیره و تغییر ساختارهای پیچیده را فراهم میکند.
آیا میدانید مدرسه فرانت اند پرنیان، دوره فرانت اند از صفر تا صد را بصورت حرفه ای برگزار میکند؟
در ادامه مقاله حافظه Stack و Heap در جاوا اسکریپت…
مثال برای مقادیر Primitive (Stack):
let a = 10;
let b = a;
a = 20;
console.log(a, b); // خروجی: 20 10
در این مثال، a و b دو کپی مستقل در Stack هستند.
مثال برای آرایه یا آبجکت (Heap):
let obj1 = { name: "Alice" };
let obj2 = obj1;
obj1.name = "Bob";
console.log(obj1.name, obj2.name); // خروجی: Bob Bob
در اینجا، هر دو متغیر به یک مکان در Heap اشاره میکنند.
(Garbage Collection)
جاوا اسکریپت دارای جمعسپاری خودکار حافظه (Garbage Collection) است. الگوریتم رایج Mark-and-Sweep است که اشیا در Heap را بررسی و اشیای بدون ارجاع را جمعآوری میکند.
این فرآیند خودکار است و توسعهدهنده معمولاً نیازی به دخالت ندارد.
برای آموزش کامل میتوانید ویدیوی زیر را مشاهده کنید:
امیدواریم از این مقاله نهایت استفاده را برده باشید و آن را با دوستانتان به اشتراک بگذارید. تیم تولید محتوای مدرسه اینترنتی پرنیان این مقاله را تهیه کرده است.
درباره مدیریت
شما در حال مطالعه یکی از مقالات آموزشی وبلاگ پرنیان بودید. اگر برایتان مفید بود آن را با دوستانتان به اشتراک بگذارید. من پارسا قربانیان و اینجا مدرسه فرانت اند پرنیان، میخواهیم در یک معامله برد برد، با هم به آرزوهایمان برسیم..
نوشته های بیشتر از مدیریت
دیدگاهتان را بنویسید