יסודות JavaScript: Callbacks, Objects, וביצוע (Execution)

JavaScript פועלת בשתי דרכים: סינכרונית (synchronous) ואסינכרונית (asynchronous).

קוד סינכרוני רץ שורה אחר שורה. המנוע מסיים משימה אחת לפני שהוא מתחיל בבאה אחריה. זה חוסם את הרצת המשימה הבאה.

קוד אסינכרוני מאפשר למשימות לרוץ באופן עצמאי. אתה מתחיל משימה וממשיך למשימה הבאה בזמן ההמתנה. זה משפר את הביצועים באפליקציות ווב (web apps).

מושגי אסינכרוניות מרכזיים: • Callbacks: פונקציות המועברות לפונקציות אחרות כדי שירוצו מאוחר יותר. • Promises: אובייקטים המייצגים את התוצאה של פעולה. • Async/Await: תחביר מודרני שהופך קוד אסינכרוני לקל לקריאה. • Event Loop: המערכת שמנהלת את ביצוע המשימות.

הבנת תהליכים (Processes) וחוטים (Threads)

תהליך (Process) הוא תוכנית הנמצאת בהרצה. • תהליכים הם מבודדים. • הם אינם חולקים זיכרון. • תהליך יכול ליצור תהליכי בן (child processes). • לוקח להם יותר זמן להסתיים.

חוט (Thread) הוא מקטע בתוך תהליך. • לתהליך יכולים להיות הרבה חוטים. • חוטים חולקים זיכרון. • לוקח להם פחות זמן להסתיים.

מהי פונקציית Callback?

Callback הוא פונקציה המועברת כארגומנט. הפונקציה החיצונית קוראת לה כדי להשלים משימה. השתמש ב-callbacks עבור: • משימות אסינכרוניות כמו שליפת נתונים (fetching data). • טיפול באירועים (event handling) כמו לחיצות על כפתורים. • יצירת קוד שניתן לשימוש חוזר.

אובייקטים ב-JavaScript

אובייקט שומר נתונים בצמדי מפתח-ערך (key-value pairs). מפתחות מזהים את הערכים. הערכים יכולים להיות טיפוסים פרימיטיביים (primitives), אובייקטים אחרים או פונקציות.

ניתן ליצור אובייקטים בשתי דרכים:

  1. Object Literals: שימוש בסוגריים מסולסלים להגדרת מאפיינים (properties). דוגמה: let user = {name: "Sourav", age: 23};

  2. Object Constructor: שימוש בפקודת new Object(). דוגמה: let user = new Object();

אובייקטים הם mutable (ניתנים לשינוי). ניתן להוסיף, לשנות או למחוק מאפיינים בכל עת. זה עוזר לך לקבץ נתונים קשורים יחד.

מקור: https://dev.to/karthick_07/understanding-callback-functions-objects-and-synchronous-programming-a-comprehensive-guide-27lb