JavaScript ఫంక్షన్లు, ప్రాసెస్లు మరియు ఎగ్జిక్యూషన్
JavaScriptలో నైపుణ్యం సాధించాలంటే కోడ్ ఎలా రన్ అవుతుందో అర్థం చేసుకోవడం అవసరం.
మీరు తెలుసుకోవలసిన ముఖ్యమైన అంశాలు ఇక్కడ ఉన్నాయి.
1. 5 రకాల JavaScript ఫంక్షన్లు
- Named Function: ఒక నిర్దిష్ట పేరును ఉపయోగిస్తుంది. ఇది తప్పులను (errors) త్వరగా గుర్తించడానికి (debug) సహాయపడుతుంది.
- Anonymous Function: దీనికి పేరు ఉండదు. వీటిని callbacks లేదా variable assignments కోసం ఉపయోగిస్తారు.
- Function Expression: మీరు ఒక ఫంక్షన్ను వేరియబుల్కు కేటాయిస్తారు.
- Arrow Function:
=>గుర్తును ఉపయోగించే ఒక చిన్న సింటాక్స్. ఇదిthisకీవర్డ్ను భిన్నంగా హ్యాండిల్ చేస్తుంది. - IIFE: మీరు నిర్వచించిన వెంటనే రన్ అవుతుంది. ఇది మీ కోడ్ను ఐసోలేట్ (isolate) చేస్తుంది.
2. Process vs. Thread
Process అనేది రన్ అవుతున్న ప్రోగ్రామ్. ప్రతి ప్రాసెస్కు దాని స్వంత మెమరీ ఉంటుంది. ఒకవేళ Chrome క్రాష్ అయినా, Spotify రన్ అవుతూనే ఉంటుంది, ఎందుకంటే అవి వేర్వేరు ప్రాసెస్లు.
Thread అనేది ఒక ప్రాసెస్ లోపల ఉండే చిన్న యూనిట్. థ్రెడ్లు ఒకే మెమరీని పంచుకుంటాయి. దీనివల్ల అవి ప్రాసెస్ల కంటే వేగంగా మరియు తేలికగా ఉంటాయి.
3. Synchronous vs. Asynchronous
JavaScript అనేది single-threaded. ఇది సాధారణంగా ఒక సమయంలో ఒకే టాస్క్ను రన్ చేస్తుంది.
Synchronous Execution: టాస్క్లు ఒక కచ్చితమైన క్రమంలో రన్ అవుతాయి. తదుపరి లైన్, ప్రస్తుత లైన్ పూర్తయ్యే వరకు వేచి ఉంటుంది. ఒక టాస్క్ ఎక్కువ సమయం తీసుకుంటే, ఇది మీ యాప్ను నెమ్మదింపజేయవచ్చు.
Asynchronous Execution: టాస్క్లు ఇప్పుడు ప్రారంభమై, తర్వాత పూర్తవుతాయి. ఇది మీ కోడ్ బ్లాక్ అవ్వకుండా నిరోధిస్తుంది.
ఇది ఎలా పనిచేస్తుంది:
- Call Stack మీ ప్రస్తుత టాస్క్లను హ్యాండిల్ చేస్తుంది.
- Web APIs టైమర్లు లేదా డేటా రిక్వెస్ట్ల వంటి ఎక్కువ సమయం తీసుకునే టాస్క్లను బ్యాక్గ్రౌండ్లో హ్యాండిల్ చేస్తాయి.
- Callback Queue పూర్తయిన టాస్క్లను ఉంచుతుంది.
- Event Loop క్యూ ఖాళీగా ఉన్నప్పుడు, అందులోని టాస్క్లను తిరిగి స్టాక్కు మారుస్తుంది.
Asynchronous ఫ్లో ఉదాహరణ:
- "Hi" అని లాగ్ చేయండి
- 2 సెకన్ల టైమర్ను ప్రారంభించండి
- "End" అని లాగ్ చేయండి
- (2 సెకన్ల తర్వాత) "Vicky" అని లాగ్ చేయండి
కోడ్ టైమర్ కోసం వేచి ఉండదు. ఇది వెంటనే "End" కి వెళ్తుంది.
Optional learning community: https://t.me/GyaanSetuAi