𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗕𝗮𝘀𝗶𝗰𝘀: 𝗖𝗮𝗹𝗹𝗯𝗮𝗰𝗸𝘀, 𝗢𝗯𝗷𝗲𝗰𝘁𝘀, 𝗮𝗻𝗱 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻

JavaScript రెండు విధాలుగా నడుస్తుంది: synchronous మరియు asynchronous.

Synchronous కోడ్ లైన్ బై లైన్ నడుస్తుంది. ఇంజిన్ తదుపరి పనిని ప్రారంభించే ముందు ఒక పనిని పూర్తి చేస్తుంది. ఇది తదుపరి పనిని నడవకుండా అడ్డుకుంటుంది.

Asynchronous కోడ్ పనులను స్వతంత్రంగా నడవడానికి అనుమతిస్తుంది. మీరు ఒక పనిని ప్రారంభించి, అది పూర్తయ్యే వరకు వేచి ఉండకుండానే తదుపరి పనికి వెళ్ళవచ్చు. ఇది వెబ్ యాప్‌ల పనితీరును (performance) మెరుగుపరుస్తుంది.

ముఖ్యమైన asynchronous భావనలు: • Callbacks: తర్వాత నడవడానికి ఇతర ఫంక్షన్లలోకి పంపబడే ఫంక్షన్లు. • Promises: ఒక ఆపరేషన్ యొక్క ఫలితాన్ని సూచించే ఆబ్జెక్ట్‌లు. • Async/Await: Asynchronous కోడ్‌ను సులభంగా చదవడానికి ఉపయోగించే ఆధునిక సింటాక్స్ (syntax). • Event Loop: టాస్క్ ఎగ్జిక్యూషన్‌ను నిర్వహించే సిస్టమ్.

Processes మరియు Threads గురించి అవగాహన

Process అనేది అమలులో ఉన్న (in execution) ఒక ప్రోగ్రామ్. • Processes స్వతంత్రంగా (isolated) ఉంటాయి. • అవి మెమరీని పంచుకోవు. • ఒక process ద్వారా child processesలను సృష్టించవచ్చు. • ఇవి ముగియడానికి (terminate) ఎక్కువ సమయం తీసుకుంటాయి.

Thread అనేది ఒక process లోని ఒక భాగం. • ఒక process లో అనేక threads ఉండవచ్చు. • Threads మెమరీని పంచుకుంటాయి. • ఇవి ముగియడానికి తక్కువ సమయం తీసుకుంటాయి.

Callback Function అంటే ఏమిటి?

Callback అనేది ఒక argument గా పంపబడే ఫంక్షన్. ఒక పనిని పూర్తి చేయడానికి బయటి ఫంక్షన్ (outer function) దీనిని పిలుస్తుంది. Callbacks ను వీటి కోసం ఉపయోగించండి: • డేటాను ఫెచ్ చేయడం (fetching data) వంటి asynchronous పనులు. • బటన్ క్లిక్‌ల వంటి ఈవెంట్ హ్యాండ్లింగ్ (event handling). • మళ్లీ ఉపయోగించదగిన (reusable) కోడ్‌ను సృష్టించడం.

JavaScript Objects

ఒక object డేటాను key-value జంటలుగా నిల్వ చేస్తుంది. Keys విలువలను గుర్తిస్తాయి. Values లు primitives, ఇతర objects లేదా functions కావచ్చు.

మీరు రెండు విధాలుగా objects ను సృష్టించవచ్చు:

  1. Object Literals: ప్రాపర్టీలను నిర్వచించడానికి కర్లీ బ్రేసెస్ (curly braces) ఉపయోగించండి. ఉదాహరణ: let user = {name: "Sourav", age: 23};

  2. Object Constructor: new Object() కమాండ్‌ను ఉపయోగించండి. ఉదాహరణ: let user = new Object();

Objects మ్యూటబుల్ (mutable). మీరు ఏ సమయంలోనైనా ప్రాపర్టీలను జోడించవచ్చు, మార్చవచ్చు లేదా తొలగించవచ్చు. ఇది సంబంధిత డేటాను ఒకచోట సమూహపరచడానికి (group) సహాయపడుతుంది.

Source: https://dev.to/karthick_07/understanding-callback-functions-objects-and-synchronous-programming-a-comprehensive-guide-27lb