4. فهم بيئة تشغيل JS (Runtime)
عند تشغيل JavaScript، يتم تنفيذها ضمن بيئة محددة تسمى Runtime Environment. في المتصفح، تتضمن هذه البيئة عدة مكونات.
محرك JavaScript (The JavaScript Engine)
المكون الأساسي هو محرك JS (مثل V8 في Chrome). يأخذ هذا المحرك الكود الخاص بك وينفذه. يحتوي المحرك على:
- مكدس الذاكرة (Memory Heap): حيث يتم تخزين المتغيرات والكائنات (Objects).
- مكدس النداءات (Call Stack): حيث يتم تتبع سياق التنفيذ (أي دالة تعمل حاليًا).
دور المتصفح
إلى جانب المحرك، يوفر المتصفح واجهات برمجة تطبيقات الويب (Web APIs).
- أمثلة على Web APIs:
setTimeout، و DOM (Document Object Model)، وfetch(للاتصال بالشبكات).
عندما يتم تنفيذ JS، إذا واجه أمرًا خاصًا بالمتصفح (مثل 'انتظر ثانيتين' أو 'غيّر هذا العنصر')، فإنه يسلم هذه المهمة إلى Web APIs ويستمر في تشغيل بقية الكود. هذا السلوك غير المعيق (non-blocking) حيوي لفهم JS المتقدمة.