𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗕𝗮𝘀𝗶𝗰𝘀: 𝗖𝗮𝗹𝗹𝗯𝗮𝗰𝗸𝘀, 𝗢𝗯𝗷𝗲𝗰𝘁𝘀, 𝗮𝗻𝗱 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻

JavaScript दोन प्रकारे चालते: synchronous आणि asynchronous.

Synchronous कोड ओळीनुसार (line by line) चालतो. इंजिन पुढचे काम सुरू करण्यापूर्वी एक काम पूर्ण करते. यामुळे पुढचे काम थांबते (blocks होते).

Asynchronous कोड कामांना स्वतंत्रपणे चालवण्याची परवानगी देतो. तुम्ही एक काम सुरू करता आणि ते पूर्ण होण्याची वाट पाहत असतानाच पुढच्या कामाकडे वळू शकता. यामुळे वेब ॲप्सची कार्यक्षमता (performance) सुधारते.

महत्त्वाच्या asynchronous संकल्पना: • Callbacks: नंतर चालवण्यासाठी इतर फंक्शन्समध्ये पास केलेली फंक्शन्स. • Promises: एखाद्या ऑपरेशनचा निकाल दर्शवणारे Objects. • Async/Await: asynchronous कोड वाचण्यास सोपा बनवण्यासाठी वापरली जाणारी आधुनिक syntax. • Event Loop: टास्क एक्झिक्यूशन व्यवस्थापित करणारी सिस्टीम.

Processes आणि Threads समजून घेणे

Process म्हणजे अंमलबजावणीत असलेला (in execution) प्रोग्राम. • Processes स्वतंत्र (isolated) असतात. • ते मेमरी शेअर करत नाहीत. • एक process 'child processes' तयार करू शकतो. • त्यांना थांबण्यासाठी (terminate होण्यासाठी) जास्त वेळ लागतो.

Thread हा process चा एक भाग (segment) असतो. • एका process मध्ये अनेक threads असू शकतात. • Threads मेमरी शेअर करतात. • त्यांना थांबण्यासाठी कमी वेळ लागतो.

Callback Function म्हणजे काय?

Callback म्हणजे argument म्हणून पास केलेले फंक्शन. बाहेरील फंक्शन (outer function) एखादे काम पूर्ण करण्यासाठी त्याला कॉल करते. Callbacks चा वापर खालील गोष्टींसाठी करा: • डेटा फेचिंग (fetching data) सारखी asynchronous कामे. • बटन क्लिक्स सारखे event handling. • पुन्हा वापरण्यायोग्य (reusable) कोड तयार करण्यासाठी.

JavaScript Objects

Object मध्ये डेटा key-value जोड्यांमध्ये साठवला जातो. Keys मुळे values ओळखता येतात. Values हे primitives, इतर objects किंवा functions असू शकतात.

तुम्ही दोन प्रकारे objects तयार करू शकता:

  1. Object Literals: प्रॉपर्टीज परिभाषित करण्यासाठी curly braces वापरा. उदाहरण: let user = {name: "Sourav", age: 23};

  2. Object Constructor: new Object() कमांड वापरा. उदाहरण: let user = new Object();

Objects हे mutable असतात. तुम्ही कोणत्याही वेळी प्रॉपर्टीज जोडू शकता, बदलू शकता किंवा हटवू शकता. यामुळे संबंधित डेटा एकत्र गटबद्ध करण्यास मदत होते.

स्त्रोत: https://dev.to/karthick_07/understanding-callback-functions-objects-and-synchronous-programming-a-comprehensive-guide-27lb