پشت صحنه اجرای JavaScript چه اتفاقی میافته؟ 🤔
برای فهمیدن این موضوع، باید با چند مفهوم مهم آشنا بشیم:
🔹 Call Stack
🔹 Web APIs
🔹 Task Queue
🔹 Event Loop
━━━━━━━━━━━━━━
🔹 ۱. Call Stack
محلیه که کدهای معمولی JavaScript برای اجرا واردش میشن
مثلاً:
console.log("A");
setTimeout(() => {
console.log("B");
}, 1000);
console.log("C");
ابتدا "A" اجرا میشه
بعد "setTimeout" اجرا میشه، اما JavaScript برای یک ثانیه منتظر نمیمونه
مرورگر مدیریت Timer رو بر عهده میگیره و JavaScript میره سراغ دستور بعدی
در نتیجه "C" هم اجرا میشه
━━━━━━━━━━━━━━
🔹 ۲. Web APIs
بعضی قابلیتها مستقیماً توسط موتور JavaScript انجام نمیشن و محیط مرورگر مدیریتشون میکنه.
مثلاً:
⏱️ "setTimeout" و "setInterval"
🌐 درخواستهای شبکه مثل "fetch"
🖱️ رویدادهایی مثل کلیک و تایپ
📍 بعضی قابلیتهای مرورگر مثل Geolocation
━━━━━━━━━━━━━━
🔹 ۳. Task Queue
وقتی کارهایی مثل Timer آماده اجرا میشن، Callback اونها در صف منتظر میمونه
در مثال ما، بعد از یک ثانیه:
console.log("B");
آماده اجرا میشه و منتظر میمونه
━━━━━━━━━━━━━━
🔹 ۴. Event Loop
اینجا Event Loop وارد ماجرا میشه
Event Loop مرتب بررسی میکنه:
«آیا Call Stack خالیه؟»
اگر خالی باشه و کاری در صف منتظر اجرا باشه، اون کار رو وارد Call Stack میکنه
بعد JavaScript اون رو اجرا میکنه
پس در نهایت:
A
C
B
📌 خلاصه:
Call Stack → محل اجرای کدها
Web APIs → مدیریت بعضی قابلیتهای مرورگر
Task Queue → صف کارهای آماده اجرا
Event Loop → هماهنگکننده انتقال کارها به Call Stack
نکته مهم اینه که Event Loop خودش کد رو اجرا نمیکنه؛ فقط زمان مناسب ورود کارهای آماده به Call Stack رو هماهنگ میکنه
🔗https://t.me/codetrailWeb
#JavaScript #Frontend