العودة إلى المدونة

20 سؤالاً في مقابلات JavaScript (مع إجابات حقيقية)

الأسئلة الحقيقية التي تظهر في مقابلات JavaScript للمبتدئين والمتوسطين — مع إجابات صريحة وشاملة يمكنك الدراسة منها.

بقلم JavaScript Guildقراءة 2 دقيقة

20 سؤالاً في مقابلات JavaScript (مع إجابات حقيقية)

هذه الأسئلة تظهر مراراً وتكراراً في مقابلات JavaScript للمبتدئين والمتوسطين.


الأساسيات

1. ما الفرق بين var وlet وconst؟

var ذات نطاق دالة وترفع. let وconst ذواتا نطاق كتلة. const تمنع إعادة الإسناد.

2. ما هو الرفع (Hoisting)؟

سلوك JavaScript في نقل التصريحات إلى أعلى نطاقها قبل التنفيذ. متغيرات var ترفع لكن تُهيَّأ كـundefined.

3. ما الفرق بين == و===؟

== يُجري تحويلاً للنوع. === يقارن القيمة والنوع معاً. استخدم === دائماً.

4. ما هي القيم الزائفة (Falsy)؟

false، 0، ""، null، undefined، NaN.


الدوال والنطاق

5. ما هو الإغلاق (Closure)؟

دالة تحتفظ بالوصول إلى نطاقها الخارجي حتى بعد عودة الدالة الخارجية.

function makeCounter() {
  let count = 0;
  return () => ++count;
}
const counter = makeCounter();
counter(); // 1

6. ما الذي يشير إليه this؟

  • في method: الكائن المالك
  • في دالة مستقلة: الكائن العالمي
  • في الدالة السهمية: موروث من النطاق المحيط

JavaScript غير المتزامنة

7. ما هي حلقة الأحداث (Event Loop)؟

JavaScript أحادية الخيط. حلقة الأحداث تدير تنفيذ الكود. مهام micro (الوعود) تعمل قبل macro (setTimeout).

8. ما هو الـ Promise؟

يمثل قيمة ستكون متاحة بشكل غير متزامن. حالاته: pending أو fulfilled أو rejected.

9. ماذا يفعل async/await؟

async تجعل الدالة تعيد Promise. await توقف التنفيذ حتى تنتهي الـ Promise.

10. كيف تتعامل مع الأخطاء في async؟

لف await في كتلة try/catch.


النماذج الأولية والأصناف

11. ما هي سلسلة النماذج الأولية؟

كل كائن له رابط داخلي لكائن آخر. عند الوصول لخاصية، JS تبحث في الكائن ثم تصعد في السلسلة.


متفرقات

12. ما الفرق بين null وundefined؟

undefined: صُرِّح بالمتغير لكن لم يُسند. null: إسناد متعمد يدل على "لا قيمة".

13. ما هي الدالة النقية؟

دالة تعيد نفس المخرجات لنفس المدخلات وليس لها آثار جانبية.

14. ما هو تفويض الأحداث؟

إضافة مستمع واحد للعنصر الأب بدلاً من كل عنصر فرعي.

15. ما الفرق بين call وapply وbind؟

  • call: يستدعي فوراً، وسائط فردية
  • apply: يستدعي فوراً، وسائط كمصفوفة
  • bind: يعيد دالة جديدة، لا يستدعي فوراً

دورة شهادة JavaScript Guild تُغطي كل هذه المفاهيم بعمق مع تحديات برمجية حقيقية.

شارك هذا المقال

التعليقات

لا توجد تعليقات بعد

سجّل الدخول للمشاركة في النقاش.

سجّل الدخول للتعليق

كن أول من يعلّق.

المزيد من المدونة