أساسيات JavaScript: الـ Callbacks، والـ Objects، والتنفيذ
تعمل JavaScript بطريقتين: متزامنة (synchronous) وغير متزامنة (asynchronous).
يعمل الكود المتزامن (Synchronous code) سطراً بسطر؛ حيث ينتهي المحرك من مهمة واحدة قبل البدء في المهمة التالية، مما يؤدي إلى حظر تنفيذ المهمة التالية.
أما الكود غير المتزامن (Asynchronous code) فيسمح للمهام بالعمل بشكل مستقل. يمكنك بدء مهمة والانتقال إلى المهمة التالية أثناء انتظار انتهاء المهمة الأولى، مما يحسن الأداء في تطبيقات الويب.
المفاهيم الأساسية لغير المتزامن: • Callbacks: دوال يتم تمريرها إلى دوال أخرى ليتم تنفيذها لاحقاً. • Promises: كائنات تمثل نتيجة عملية ما. • Async/Await: صيغة حديثة تجعل الكود غير المتزامن سهل القراءة. • Event Loop: النظام الذي يدير تنفيذ المهام.
فهم العمليات (Processes) والخيوط (Threads)
العملية (Process) هي برنامج قيد التنفيذ. • العمليات معزولة. • لا تتشارك الذاكرة. • يمكن للعملية إنشاء عمليات فرعية (child processes). • تستغرق وقتاً أطول للإنهاء.
الخيط (Thread) هو جزء من العملية. • يمكن أن تحتوي العملية على خيوط متعددة. • تتشارك الخيوط الذاكرة. • تستغرق وقتاً أقل للإنهاء.
ما هي دالة الـ Callback؟
الـ Callback هي دالة يتم تمريرها كمعامل (argument). تقوم الدالة الخارجية باستدعائها لإنهاء مهمة ما. استخدم الـ callbacks من أجل: • المهام غير المتزامنة مثل جلب البيانات (fetching data). • معالجة الأحداث مثل النقر على الأزرار. • إنشاء كود قابل لإعادة الاستخدام.
كائنات JavaScript (Objects)
يقوم الكائن (Object) بتخزين البيانات في أزواج من المفتاح والقيمة (key-value pairs). تحدد المفاتيح القيم، ويمكن أن تكون القيم أنواعاً أولية (primitives)، أو كائنات أخرى، أو دوال.
يمكنك إنشاء الكائنات بطريقتين:
Object Literals: استخدم الأقواس المتعرجة لتعريف الخصائص. مثال:
let user = {name: "Sourav", age: 23};Object Constructor: استخدم الأمر
new Object(). مثال:let user = new Object();
الكائنات قابلة للتعديل (mutable). يمكنك إضافة الخصائص أو تغييرها أو حذفها في أي وقت، مما يساعدك على تجميع البيانات ذات الصلة معاً.