JavaScript Functions, Threads, અને Asynchronous Execution
તમારે JavaScript અંદરથી કેવી રીતે કામ કરે છે તે સમજવાની જરૂર છે.
અહીં functions, processes, threads અને execution styles ની વિગતવાર સમજૂતી છે.
JavaScript Functions ના પ્રકારો
- Named Function: એક ચોક્કસ નામનો ઉપયોગ કરે છે. આનાથી debugging સરળ બને છે.
- Anonymous Function: તેનું કોઈ નામ હોતું નથી. તમે ઘણીવાર આનો ઉપયોગ callbacks તરીકે કરો છો.
- Function Expression: તમે કોઈ variable ને function અસાઇન કરો છો.
- Arrow Function: => symbol નો ઉપયોગ કરીને ટૂંકી syntax.
- IIFE: એક Immediately Invoked Function Expression. તમે તેને define કરો તેટલી જ ક્ષણે તે ચાલે છે.
Process vs. Thread
A Process એ તમારા કમ્પ્યુટર પર ચાલતો એક પ્રોગ્રામ છે.
- દરેક process ની પોતાની memory હોય છે.
- જો એક process crash થાય, તો અન્ય ચાલુ રહે છે.
- ઉદાહરણ: Chrome અને Spotify અલગ-અલગ processes છે.
A Thread એ process ની અંદર એક નાનો એકમ (unit) છે.
- Threads એક જ memory શેર કરે છે.
- તેઓ એક જ પ્રોગ્રામને એકસાથે ઘણી બધી વસ્તુઓ કરવાની મંજૂરી આપે છે.
- ઉદાહરણ: Chrome ની અંદર, એક thread પેજ render કરે છે જ્યારે બીજું તમારા mouse clicks હેન્ડલ કરે છે.
Synchronous vs. Asynchronous
JavaScript single-threaded છે. તે call stack નો ઉપયોગ કરીને એક સમયે એક જ કાર્ય (task) હેન્ડલ કરે છે.
Synchronous Execution:
- Tasks એક પછી એક ચાલે છે.
- દરેક task અગાઉના task ના પૂર્ણ થવાની રાહ જુએ છે.
- ધીમા tasks તમારા કોડને ચાલતા અટકાવે છે (block કરે છે).
Asynchronous Execution:
- Tasks background માં ચાલે છે.
- Task પૂર્ણ થવાની રાહ જોતી વખતે કોડ અટકતો નથી.
- આમાં Web APIs, Callback Queue અને Event Loop નો ઉપયોગ થાય છે.
Asynchronous કેવી રીતે કામ કરે છે:
- JavaScript એક task (જેમ કે timer) ને Web API ને મોકલે છે.
- મુખ્ય કોડ ચાલતો રહે છે.
- એકવાર task પૂર્ણ થઈ જાય પછી, તે Callback Queue માં જાય છે.
- જ્યારે stack ખાલી હોય ત્યારે Event Loop તેને Call Stack માં ખસેડે છે.
આ તમારી web apps ને ઝડપી અને responsive રાખે છે.