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

JavaScript hufanya kazi kwa njia mbili: synchronous na asynchronous.

Code ya synchronous hufanya kazi mstari kwa mstari. Injini (engine) hukamilisha kazi moja kabla ya kuanza inayofuata. Hii huzuia kazi inayofuata isifanye kazi.

Code ya asynchronous inaruhusu kazi kufanya kazi kwa uhuru. Unaanzisha kazi moja na kuendelea na inayofuata wakati ukingojea. Hii huboresha utendaji katika programu za wavuti (web apps).

Dhana muhimu za asynchronous: • Callbacks: Functions zinazopitishwa kwenye functions nyingine ili zitekelezwe baadaye. • Promises: Objects zinazowakilisha matokeo ya operesheni. • Async/Await: Sintaksi ya kisasa inayofanya code ya asynchronous iwe rahisi kusomeka. • Event Loop: Mfumo unaosimamia utekelezaji wa kazi.

Kuelewa Processes na Threads

Process ni programu inayotekelezwa. • Processes zimejitenga. • Hazishiriki kumbukumbu (memory). • Process inaweza kutengeneza child processes. • Huchukua muda mrefu zaidi kukamilika.

Thread ni sehemu ya process. • Process inaweza kuwa na threads nyingi. • Threads hushiriki kumbukumbu (memory). • Huchukua muda mdogo zaidi kukamilika.

Callback Function ni nini?

Callback ni function inayopitishwa kama argument. Function ya nje huiita ili kukamilisha kazi. Tumia callbacks kwa: • Kazi za asynchronous kama vile kupata data (fetching data). • Kushughulikia matukio (event handling) kama vile kubofya kitufe. • Kutengeneza code zinazoweza kutumika tena.

JavaScript Objects

Object huhifadhi data katika jozi za key-value. Keys hutambua values. Values zinaweza kuwa primitives, objects nyingine, au functions.

Unaweza kutengeneza objects kwa njia mbili:

  1. Object Literals: Tumia mabano ya mraba {} kuainisha sifa (properties). Mfano: let user = {name: "Sourav", age: 23};

  2. Object Constructor: Tumia amri ya new Object(). Mfano: let user = new Object();

Objects zinaweza kubadilishwa (mutable). Unaweza kuongeza, kubadilisha, au kufuta sifa (properties) wakati wowote. Hii inakusaidia kuweka data zinazohusiana pamoja.

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