𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝗰𝗼𝗽𝗲: 𝗕𝗹𝗼𝗰𝗸, 𝗚𝗹𝗼𝗯𝗮𝗹, 𝗮𝗻𝗱 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻
നിങ്ങളുടെ കോഡിൽ ഒരു വേരിയബിൾ എവിടെ ഉപയോഗിക്കാം എന്ന് തീരുമാനിക്കുന്നത് സ്കോപ്പ് (Scope) ആണ്.
Global Scope ഫംഗ്ഷനുകൾക്കോ ബ്ലോക്കുകൾക്കോ പുറത്താണ് വേരിയബിളുകൾ നിലനിൽക്കുന്നത്. നിങ്ങളുടെ സ്ക്രിപ്റ്റിലെ എവിടെനിന്നും നിങ്ങൾക്ക് അവ ഉപയോഗിക്കാം. മുന്നറിയിപ്പ്: ഗ്ലോബൽ വേരിയബിളുകൾ ബഗുകൾക്ക് (bugs) കാരണമായേക്കാം, കാരണം കോഡിന്റെ ഏത് ഭാഗത്തിനും അവ മാറ്റം വരുത്താൻ സാധിക്കും.
Function Scope വേരിയബിളുകൾ ഒരു ഫംഗ്ഷനുള്ളിലാണ് നിലനിൽക്കുന്നത്. ആ പ്രത്യേക ഫംഗ്ഷനുള്ളിൽ നിന്ന് മാത്രമേ അവ ഉപയോഗിക്കാൻ കഴിയൂ.
Block Scope ഇത്
letഅല്ലെങ്കിൽconstഉപയോഗിക്കുന്ന ആധുനിക JavaScript-ന് ബാധകമാണ്. വേരിയബിളുകൾ കർലി ബ്രേസസിനുള്ളിൽ ({}) ആണ് നിലനിൽക്കുന്നത്. ഒരു ബ്ലോക്കിൽ ഇവ ഉൾപ്പെടുന്നു:
- if സ്റ്റേറ്റ്മെന്റുകൾ
- for ലൂപ്പുകൾ
- while ലൂപ്പുകൾ
- സ്വതന്ത്രമായ ബ്ലോക്കുകൾ {}
സ്കോപ്പിന്റെ സംഗ്രഹം (Summary of Scope):
- Global: എവിടെനിന്നും ഉപയോഗിക്കാം.
- Function: ഫംഗ്ഷനുള്ളിൽ നിന്ന് മാത്രമേ ഉപയോഗിക്കാൻ കഴിയൂ.
- Block: കർലി ബ്രേസസിനുള്ളിൽ നിന്ന് മാത്രമേ ഉപയോഗിക്കാൻ കഴിയൂ.
- var: ഫംഗ്ഷൻ സ്കോപ്പ് ഉപയോഗിക്കുന്നു. ഇത് ബ്ലോക്ക് സ്കോപ്പിനെ അവഗണിക്കുന്നു.
- let, const: ബ്ലോക്ക് സ്കോപ്പ് ഉപയോഗിക്കുന്നു. മികച്ച കോഡിംഗിനായി ഇവ ഉപയോഗിക്കുക.
പ്രോസസ്സുകളും (Processes) ത്രെഡുകളും (Threads) മനസ്സിലാക്കാം
സ്വന്തമായി മെമ്മറിയുള്ള, പ്രവർത്തിച്ചുകൊണ്ടിരിക്കുന്ന ഒരു പ്രോഗ്രാമാണ് ഒരു പ്രോസസ്സ്. WhatsApp ഒരു പ്രോസസ്സായി കരുതുക.
ഒരു പ്രോസസ്സിന്റെ ചെറിയ ഭാഗമാണ് ഒരു ത്രെഡ്. ത്രെഡുകൾ ഒരേ മെമ്മറി പങ്കിടുന്നു.
- ത്രെഡുകൾ ലൈറ്റ് വെയ്റ്റ് (lightweight) ആണ്.
- അവ വേഗത്തിൽ നിർമ്മിക്കാൻ സാധിക്കും.
- ഒരേസമയം പല കാര്യങ്ങൾ ചെയ്യാൻ അവ നിങ്ങളെ അനുവദിക്കുന്നു.
WhatsApp-ന്റെ ഉദാഹരണം: ഒരു പ്രോസസ്സ് (WhatsApp) ഒന്നിലധികം ത്രെഡുകൾ പ്രവർത്തിപ്പിക്കുന്നു:
- മെസ്സേജുകൾ സ്വീകരിക്കുന്നു
- ഫോട്ടോകൾ അയക്കുന്നു
- വീഡിയോകൾ പ്ലേ ചെയ്യുന്നു
- നോട്ടിഫിക്കേഷനുകൾ കാണിക്കുന്നു
Source: https://freeacademy.ai/lessons/global-vs-function-vs-block-scope Source: https://josephcardillo.medium.com/the-difference-between-function-and-block-scope-in-javascript-4296b2322abe