𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗕𝗮𝘀𝗶𝗰𝘀: 𝗖𝗮𝗹𝗹𝗯𝗮𝗰𝗸𝘀, 𝗢𝗯𝗷𝗲𝗰𝘁𝘀, 𝗮𝗻𝗱 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻
JavaScript രണ്ട് രീതികളിലാണ് പ്രവർത്തിക്കുന്നത്: synchronous, asynchronous.
Synchronous കോഡ് ഓരോ വരിയായിട്ടാണ് പ്രവർത്തിക്കുന്നത്. അടുത്ത ടാസ്ക് തുടങ്ങുന്നതിന് മുമ്പ് എഞ്ചിൻ ഒരു ടാസ്ക് പൂർത്തിയാക്കുന്നു. ഇത് അടുത്ത ടാസ്ക് പ്രവർത്തിക്കുന്നത് തടയുന്നു (blocks).
Asynchronous കോഡ് ടാസ്ക്കുകളെ സ്വതന്ത്രമായി പ്രവർത്തിക്കാൻ അനുവദിക്കുന്നു. ഒരു ടാസ്ക് തുടങ്ങിക്കൊണ്ട് തന്നെ, അത് പൂർത്തിയാകുന്നത് കാത്തുനിൽക്കാതെ അടുത്ത ടാസ്ക്കിലേക്ക് നിങ്ങൾക്ക് മാറാൻ സാധിക്കും. ഇത് വെബ് ആപ്പുകളുടെ പെർഫോമൻസ് വർദ്ധിപ്പിക്കുന്നു.
പ്രധാനപ്പെട്ട asynchronous ആശയങ്ങൾ: • Callbacks: പിന്നീട് പ്രവർത്തിപ്പിക്കാനായി മറ്റ് ഫംഗ്ഷനുകളിലേക്ക് പാസ്സ് ചെയ്യുന്ന ഫംഗ്ഷനുകൾ. • Promises: ഒരു ഓപ്പറേഷന്റെ ഫലം പ്രതിനിധീകരിക്കുന്ന ഒബ്ജക്റ്റുകൾ. • Async/Await: Asynchronous കോഡ് എളുപ്പത്തിൽ വായിക്കാൻ സഹായിക്കുന്ന ആധുനിക സിന്റാക്സ്. • Event Loop: ടാസ്ക് എക്സിക്യൂഷൻ നിയന്ത്രിക്കുന്ന സിസ്റ്റം.
Processes, Threads എന്നിവയെക്കുറിച്ച് മനസ്സിലാക്കാം
ഒരു പ്രോഗ്രാം പ്രവർത്തിച്ചുകൊണ്ടിരിക്കുമ്പോഴുള്ള അവസ്ഥയാണ് പ്രോസസ് (process). • പ്രോസസ്സുകൾ ഐസൊലേറ്റഡ് (isolated) ആണ്. • അവ മെമ്മറി പങ്കിടില്ല. • ഒരു പ്രോസസ്സിന് ചൈൽഡ് പ്രോസസ്സുകളെ (child processes) സൃഷ്ടിക്കാൻ കഴിയും. • അവ അവസാനിപ്പിക്കാൻ (terminate) കൂടുതൽ സമയം എടുക്കും.
ഒരു പ്രോസസ്സിന്റെ ഭാഗമാണ് ഒരു ത്രെഡ് (thread). • ഒരു പ്രോസസ്സിന് നിരവധി ത്രെഡുകൾ ഉണ്ടാകാം. • ത്രെഡുകൾ മെമ്മറി പങ്കിടുന്നു. • അവ അവസാനിപ്പിക്കാൻ കുറഞ്ഞ സമയം മതിയാകും.
എന്താണ് ഒരു Callback Function?
ഒരു ആർഗ്യുമെന്റ് ആയി പാസ്സ് ചെയ്യുന്ന ഫംഗ്ഷനാണ് callback. ഒരു ടാസ്ക് പൂർത്തിയാക്കാൻ ഔട്ടർ ഫംഗ്ഷൻ ഇതിനെ വിളിക്കുന്നു. താഴെ പറയുന്ന കാര്യങ്ങൾക്കായി callbacks ഉപയോഗിക്കാം: • ഡാറ്റ ഫെച്ച് ചെയ്യുന്നത് (fetching data) പോലുള്ള Asynchronous ടാസ്ക്കുകൾക്കായി. • ബട്ടൺ ക്ലിക്കുകൾ പോലുള്ള Event handling-നായി. • വീണ്ടും ഉപയോഗിക്കാൻ കഴിയുന്ന (reusable) കോഡ് നിർമ്മിക്കാൻ.
JavaScript Objects
ഒരു ഒബ്ജക്റ്റ് ഡാറ്റയെ key-value ജോഡികളായി സൂക്ഷിക്കുന്നു. കീകൾ (Keys) വാല്യൂസിനെ (values) തിരിച്ചറിയുന്നു. വാല്യൂസ് പ്രിമിറ്റീവ്സ് (primitives), മറ്റ് ഒബ്ജക്റ്റുകൾ അല്ലെങ്കിൽ ഫംഗ്ഷനുകൾ എന്നിവയാകാം.
നിങ്ങൾക്ക് രണ്ട് രീതിയിൽ ഒബ്ജക്റ്റുകൾ നിർമ്മിക്കാം:
Object Literals: പ്രോപ്പർട്ടികൾ നിർവചിക്കാൻ കറ്ലി ബ്രേസസ് (curly braces) ഉപയോഗിക്കുക. ഉദാഹരണം:
let user = {name: "Sourav", age: 23};Object Constructor:
new Object()കമാൻഡ് ഉപയോഗിക്കുക. ഉദാഹരണം:let user = new Object();
ഒബ്ജക്റ്റുകൾ മ്യൂട്ടബിൾ (mutable) ആണ്. നിങ്ങൾക്ക് ഏത് സമയത്തും പ്രോപ്പർട്ടികൾ ചേർക്കാനോ, മാറ്റാനോ, അല്ലെങ്കിൽ ഡിലീറ്റ് ചെയ്യാനോ കഴിയും. ഇത് ബന്ധപ്പെട്ട ഡാറ്റകൾ ഒരുമിച്ച് ഗ്രൂപ്പ് ചെയ്യാൻ നിങ്ങളെ സഹായിക്കുന്നു.