ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-27, Monday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

ජාවාස්ක්‍රිප්ට් ක්‍රියාකාරකම් අවකාශය: අන්තර්ක්‍රියාකාරීත්වයේ මූලික රහස

ජාවාස්ක්‍රිප්ට් ක්‍රියාකාරකම් අවකාශය: අන්තර්ක්‍රියාකාරීත්වයේ මූලික රහස

ජාවාස්ක්‍රිප්ට් සමඟ වැඩ කරන හැමෝම එකම ගැටලුවක් – කේතය කොහොමද එකට එකතු වෙලා පරිශීලකයින්ට සජීවී අත්දැකීම් ලබා දෙනවද කියලා අවබෝධ කරගන්න එක. ඒකේ මූලික කරුණ ‘execution context’ (ක්‍රියාකාරකම් අවකාශය) කියලා හඳුන්වන වැඩමුළු කාමරයක්.

කොඩ් එක ධාවනය වුනොත්, ජාවාස්ක්‍රිප්ට් එක පළමුව ග්ලෝබල් අවකාශයක් (global execution context) සකස් කරයි. මෙහි ග්ලෝබල් වාරිය, function එකේ නාමය, const/let/var වාරිය ආදී සියල්ල අඩංගු. පසුතැවෙන විට function එකක් කැඳවූ විට, නව function execution context එකක් උත්පාදනය වෙයි. ඒක තුළ function තුළ නිර්වචනය කළ variable, this, සහ ඒ function එකේ වැඩ අවසන් වීමට පසු ඊළඟ කොටසට යන තැන (execution pointer) ඇතුළත් වේ.

මෙම සියලු අවකාශයන් ‘call stack’ (කැලෑ ස්ටැක්) කියන පටලයක් තුළ තබාගෙන ඉදිරියට යයි. නව context එකක් ඇතුළත් වුනොත්, එය ස්ටැක් එකේ ඉහලම ස්ථානයට යෙදේ; වැඩ අවසන් වුනොත්, එය ඉහළින්ම ඉවත් (pop) කරයි. මේ LIFO (Last In First Out) ක්‍රමය මත පදනම්ව පද්ධතිය ක්‍රියා කරයි.

එක එක් execution context එකට දෙකේ පියවරක් තියෙනවා: Creation Phase සහ Execution Phase. පළමුව, කේතය සෙවීමේදී variable සහ function හඳුනාගෙන, var වාරියට undefined දෙනවා, function declarations සම්පූර්ණයෙන්ම සුරකින්න. let සහ const වාරියන් Temporal Dead Zone (TDZ) කියන ඉඩකඩේ තබා, ඒවාට ප්‍රවේශය ඉඩ නොදෙයි. පසුකාලීනව, Execution Phase එකේ කේතය පේළියෙන් පේළියට ක්‍රියාත්මක කරයි, වාරි වලට අගය පැවරෙයි.

‘Hoisting’ කියන අතුරුදන් වීමේ බිය, Creation Phase එකේම variable සහ function ගැන දැන ගැනීම නිසා සිදුවේ. එබැවින් var වාරියකට undefined දෙන අතර, function declarations පූර්ණයෙන්ම භාවිතා කල හැක. නමුත් function expressions, let, const වැනි වාරියන් hoist නොවෙයි; ඒවා භාවිතා කලොත් ReferenceError දක්වයි.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

  • සිසුන් – JavaScript execution context සහ call stack ගැන හොඳින් අවබෝධයක් ඇතිවීම, උපාධි පාඨමාලා හා තාක්ෂණික සම්මත පරීක්ෂණ වලදී ලාභදායී වේ.
  • ඩිවෙලොපර්ලා – කේතය debug කිරීම, performance optimisation, සහ async/await වැනි නව ප්‍රවණතා හඳුනා ගැනීමට මේ මූලික කරුණු අත්‍යවශ්‍ය වේ.
  • ව්‍යාපාරිකයන් – වෙබ් අඩවි හා mobile apps වල ඉක්මන්, සාර්ථක අන්තර්ක්‍රියාකාරිත්වය පවත්වා ගැනීමට JavaScript පදනම් දැනීම අත්‍යවශ්‍ය වේ; එමඟින් පාරිභෝගික අත්දැකීම වර්ධනය කරයි.

ඉතින්, execution context, call stack, hoisting වැනි මූලික සංකල්පයන් හඳුනා ගැනීම, JavaScript පරිසරය තුළ ඔබේ වැඩක් තවත් නිරවුල්, වේගවත්, සහ සාර්ථක කරයි. මේ අඩංගු කරුණු ඔබේ ව්‍යාපෘති සාර්ථකත්වයට මූලික පදයක් වනු ඇත.

💡 ඔබේ JavaScript දැනුම තවත් ගැඹුරු කරගන්න, මේ ලිපිය කියවන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#JavaScript #ExecutionContext #CallStack #Hoisting #WebDev