அத்தியாயம் 28
ஜாவாஸ்கிரிப்ட் திரைக்குப் பின்னால் (JavaScript Behind the Scenes)
ஜாவாஸ்கிரிப்ட் என்பது உலாவிகள் மற்றும் சேவையகங்கள் இரண்டையும் இயக்கும் ஒரு பல்துறை மொழியாகும். திறமையான குறியீட்டை எழுத, திரைக்குப் பின்னால் ஜாவாஸ்கிரிப்ட் எவ்வாறு செயல்படுகிறது என்பதைப் புரிந்துகொள்வது உதவுகிறது. இதன் மையத்தில் ஜாவாஸ்கிரிப்ட் இயந்திரம் உள்ளது, இது உங்கள் குறியீட்டைச் செயல்படுத்துவதற்குப் பொறுப்பான ஒரு நிரலாகும். பிரபலமான இயந்திரங்களான V8 (Chrome மற்றும் Node.js இல் பயன்படுத்தப்படுகிறது), SpiderMonkey (Firefox இல்) மற்றும் JavaScriptCore (Safari இல்) உங்கள் குறியீட்டை உடைத்து இயக்குகின்றன. இதனுடன், எக்ஸிகியூசன் கான்டெக்ஸ்ட் (execution context) உங்கள் குறியீடு மதிப்பீடு செய்யப்படும் (evaluated) சூழலை வரையறுக்கிறது. குளோபல் (global), செயல்பாடு (function) அல்லது eval என எதுவாக இருந்தாலும், குறியீட்டை வரியாகச் செயல்படுத்துவதற்கு முன்பு ஒவ்வொரு சூழலும் ஒரு அமைவு கட்டத்தின் (setup phase) (மாறிகள் (variables), செயல்பாடுகள் மற்றும் this ஐ உருவாக்குதல்) வழியாகச் செல்கிறது.
கால் ஸ்டாக் மற்றும் நினைவகக் குவியல் போன்ற முக்கிய கூறுகள் ஜாவாஸ்கிரிப்ட்டின் செயல்பாட்டை மேலும் ஆதரிக்கின்றன. கால் ஸ்டாக் என்பது செயல்பாட்டு அழைப்புகளை (function calls) LIFO (கடைசியாக உள்ளே, முதலில் வெளியே) வரிசையில் நிர்வகிக்கிறது, அதேசமயம் நினைவகக் குவியல் பொருள்களை (objects) சேமிக்கிறது, இதில் குப்பைகளைச் சேகரிப்பதன் (garbage collection) மூலம் ஜாவாஸ்கிரிப்ட் தானாகவே நினைவகத்தை விடுவிக்கிறது. ரன்டைம் சூழல் (runtime environment)—உலாவியிலோ அல்லது Node.js இலோ—DOM அல்லது Node.js-சார்ந்த தொகுதிகள் (modules) போன்ற கூடுதல் வளங்களை (resources) வழங்குகிறது. இறுதியாக, நிகழ்வு சுழற்சி (event loop) பணிகளை ஆஃப்லோடிங் (offloading) செய்து பின்கூப்பிடல்களைச் (callbacks) செயலாக்குவதன் மூலம் ஒத்திசைவற்ற நிரலாக்கத்தை (asynchronous programming) இயக்குவதில் முக்கியப் பங்கு வகிக்கிறது, ஜாவாஸ்கிரிப்ட் தடையற்றதாக (non-blocking) மற்றும் திறமையானதாக இருப்பதை உறுதிசெய்கிறது.
இந்த அத்தியாயத்தில் நாம் பின்வரும் தலைப்புகளைப் பற்றிப் பேசப் போகிறோம்.