Skip to content

Commit

Permalink
SQL Tutorial
Browse files Browse the repository at this point in the history
  • Loading branch information
astechedu committed Mar 31, 2024
1 parent 456df82 commit deb581d
Showing 1 changed file with 143 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
>>>> JavaScript Interview >>>>>


---------------------------------------------------------------------------

Keys: Currying, Event Loop, SSR, SGR and SPS, Closures, Async, Defer, Reconciliation,
Critical Rendering Path,

---------------------------------------------------------------------------
---------------------------------------------------------------------------


Website:


-------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------


---> Currying <----

Currying को जावास्क्रिप्ट में "करींग" कहा जाता है। Currying एक तकनीक है जिसमें हम एक फ़ंक्शन को उसके arguments के सबसे पहले argument के साथ वापस बुलाते हैं, और उसके बाद के arguments को एक एक करके फ़ंक्शन में पास करते हैं। यह फ़ंक्शन वापस एक और फ़ंक्शन को रिटर्न करता है, जो फिर से उसी प्रक्रिया को दोहराता है, जिसका मतलब है कि हम फ़ंक्शन को एक बार में एक ही argument के साथ पुनः और पुनः बुला सकते हैं। इस प्रकार के फ़ंक्शन को करींग फ़ंक्शन कहा जाता है।

Sure, here's an example of currying in JavaScript:

javascript

// Function to add two numbers
function add(a, b) {
return a + b;
}

// Curried version of the add function
function curriedAdd(a) {
return function(b) {
return a + b;
};
}

// Usage of the curriedAdd function
const addFive = curriedAdd(5); // Partial application, adds 5 to any number
console.log(addFive(10)); // Output: 15

// Another usage of the curriedAdd function
const addTen = curriedAdd(10); // Partial application, adds 10 to any number
console.log(addTen(20)); // Output: 30

-------------------------------------------------------------------------------------


---> Event Loop <----

जावास्क्रिप्ट में इवेंट लूप को "इवेंट लूप" या "घटना लूप" कहा जाता है। यह एक महत्वपूर्ण अनुभाग है जो जावास्क्रिप्ट को असिंक्रोनस (Asynchronous) बनाता है। जावास्क्रिप्ट में इवेंट लूप एक लूप होता है जो निरंतर चलता रहता है और नए इवेंट्स को लिस्ट करता है। यह अनुभव में उपयोगकर्ता के द्वारा उत्पन्न होने वाली इवेंट्स को क्यू में रखता है, और यह उन्हें अनुसूचित क्रम में निष्पादित करने के लिए जिम्मेदार होता है। जब इवेंट निष्पादित होती है, तो उसके लिए निर्दिष्ट फ़ंक्शन को कॉल किया जाता है, जिसके परिणामस्वरूप कोड विचार किया जाता है। इस तरह, इवेंट लूप जावास्क्रिप्ट में असिंक्रोनस प्रोग्रामिंग की समर्थ को संभालता है।

-----------------------------------------------------------------------------------------

---> SSR, SGR and SPS <---

JavaScript में SSR (Server-Side Rendering), SSG (Static Site Generation), और SPA (Single Page Application) को हिंदी में निम्नलिखित रूप में जाना जाता है:

सर्वर-साइड रेंडरिंग (SSR): जब एक वेब ऐप्लिकेशन का पहला लोड होता है, तो सर्वर-साइड रेंडरिंग का उपयोग किया जाता है। इसमें, सर्वर वेब पृष्ठ को पूर्व-रेंडर करता है और उसे क्लाइंट को भेजता है। यह उपयोगकर्ताओं को एक तुरंत अनुभव प्रदान करता है, लेकिन पृष्ठ के लोड के लिए सर्वर की ओर से अधिक संसाधन की आवश्यकता होती है।

स्टैटिक साइट जनरेशन (SSG): स्टैटिक साइट जनरेशन में, वेब पृष्ठ स्थायी रूप से पूर्व-रेंडर किए जाते हैं और यह स्थायी फ़ाइलों के रूप में डिस्क पर संचित किए जाते हैं। यह पूर्ण वेब साइट को कहा जाता है जो कि स्टैटिक फ़ाइलों के रूप में सेव किया जाता है और अनुभव बहुत तेजी से होता है।

सिंगल पेज एप्लिकेशन (SPA): सिंगल पेज एप्लिकेशन एक वेब ऐप्लिकेशन है जो कि एक ही एक्सप्रेस पृष्ठ में नवीनीकृत होती है, जिससे पृष्ठ के लोड के बाद बाद में सभी नेविगेशन और डाटा प्राप्त करने के लिए सर्वर को आवश्यकता नहीं होती है। यह वेब ऐप्लिकेशन लोड के बाद क्लाइंट द्वारा निर्धारित नवीनीकरण के बाद पेज को रीलोड करते हैं। इसमें वेब ऐप्लिकेशन के लोड के लिए सर्वर की ओर से कम संसाधन की आवश्यकता होती है, लेकिन पृष्ठ का पुनरावलोकन करने के लिए एक्सट्रा नेटवर्क ट्रैफ़िक आता है।

-------------------------------------------------------------------------------------

---> (Closures) <---

JavaScript में क्लोजर्स (Closures) को "बंद करने वाले" या "बंद समर्थन" कहा जाता है। क्लोजर्स जावास्क्रिप्ट में एक महत्वपूर्ण कॉन्सेप्ट हैं जो उन फ़ंक्शन्स को संदर्भित करते हैं जिन्हें उनके बाहरी स्कोप से विनियोजित किया गया है। ये फ़ंक्शन्स वहाँ संदर्भित किए जा सकते हैं जहाँ वे निर्मित हुए थे, और वे अपने निवेशकों के संदर्भों को याद रखते हैं।

यह एक महत्वपूर्ण लक्ष्य है, क्योंकि यह डेटा और कोड को सुरक्षित रखता है, और इसे एक पूर्णांक वस्तु के रूप में संरक्षित करता है। क्लोजर्स एक अन्य फ़ंक्शन के भीतर एक फ़ंक्शन हो सकते हैं या वे एक्सटर्नल कोड के भीतर बनाए जा सकते हैं। इस प्रकार, क्लोजर्स जावास्क्रिप्ट में मजबूती और सुरक्षा को बढ़ाते हैं।

-----------------------------------------------------------------------------------------


---> async, defer <---


JavaScript में "async" और "defer" अलग-अलग कार्यों को पूरा करते हैं:

एसिंक (Async): "async" विशेषता का उपयोग <script> टैग के साथ किया जाता है ताकि स्क्रिप्ट को डाउनलोड किए बिना HTML पेज के बाकी हिस्सों को लोड किया जा सके। ब्राउज़र ने एक असिंक्रोनस स्क्रिप्ट को डेटा डाउनलोड किए बिना और एक बार डाउनलोड किए गए होने पर तुरंत उसे लोड करने का काम किया जाता है। यह वेब पेज के लोडिंग समय को कम करने में मदद कर सकता है क्योंकि अन्य तत्व स्क्रिप्ट को डाउनलोड और लोड किए बिना पूरा होते हैं।

उदाहरण:

html

<script src="script.js" async></script>

डिफ़र (Defer): "defer" विशेषता भी <script> टैग के साथ उपयोग किया जाता है, लेकिन यह इस संदर्भ में अलग होता है कि स्क्रिप्ट को HTML दस्तावेज़ के पूरे पार्स के बाद लोड किया जाता है, लेकिन "DOMContentLoaded" ईवेंट के पहले। यह स्क्रिप्टों को एक निश्चित क्रम में निष्पादित करने या जब स्क्रिप्ट HTML दस्तावेज़ के अनुभागों का उपयोग करता है, तो वे काम करते हैं।

उदाहरण:

html

<script src="script.js" defer></script>

सारांश में, "async" और "defer" के मुख्य अंतर यह है कि स्क्रिप्ट को HTML दस्तावेज़ के पार्सिंग के संदर्भ में कब निष्पादित किया जाता है। "async" में, स्क्रिप्ट तुरंत उपलब्ध होने पर निष्पादित किया जाता है, जबकि "defer" में, स्क्रिप्ट HTML दस्तावेज़ के पूरे पार्सिंग के बाद और "DOMContentLoaded" ईवेंट से पहले निष्पादित किया जाता है।


-------------------------------------------------------------------------------------

---> Reconciliation <---

JavaScript में "Reconciliation" का अर्थ "समाधान" होता है। यह एक प्रक्रिया है जिसमें दो वस्तुओं के बीच किसी प्रकार का मेल-जोल किया जाता है ताकि वे समान बन सकें।

यह React जैसे वेब फ्रेमवर्क में एक अहम प्रक्रिया है। React में, वर्चुअल DOM और रियल DOM के बीच के अंतर को ध्यान में रखते हुए, Reconciliation की प्रक्रिया का उपयोग किया जाता है। जब किसी कंपोनेंट के स्टेट या प्रोपर्टी में कोई परिवर्तन होता है, तो React विर्चुअल DOM में नए आउटपुट को तैयार करता है और इसे रियल DOM में अपडेट करने के लिए Reconciliation का उपयोग करता है। यह प्रक्रिया बदलते प्रोपर्टी और स्थिति को ध्यान में रखते हुए, पिछले और नए स्थिति के बीच का मेल-जोल करती है ताकि वे समान बने रहें। इस प्रक्रिया के माध्यम से, React बड़े स्थायी और एफिक्टिव तरीके से एप्लिकेशन के UI को अपडेट करता है।

-----------------------------------------------------------------------------------------


---> Critical Rendering Path <---

JavaScript का महत्वपूर्ण रेंडरिंग मार्ग (Critical Rendering Path) एक प्रक्रिया है जो ब्राउज़र का उपयोग करके वेब पृष्ठ को लोड करने के लिए जिम्मेदार होती है। यह मार्ग उन रेंडरिंग स्टेप्स का संदर्भ है जो ब्राउज़र द्वारा जारी रेंडर करने के लिए आवश्यक होते हैं ताकि उपयोगकर्ता द्वारा देखा जा सके।

महत्वपूर्ण रेंडरिंग मार्ग में निम्नलिखित चरण हो सकते हैं:

HTML पार्सिंग और DOM परिणामस्वरूप निर्माण: ब्राउज़र अपनी DOM (Document Object Model) को बनाने के लिए HTML को पार्स करता है।

CSS पार्सिंग और रूपांतरण: ब्राउज़र अपने CSS फ़ाइलों को पार्स करता है और उसे रूपांतरित करता है ताकि यह DOM तत्वों के साथ मिले और पृष्ठ को स्वरूपित करें।

JavaScript पार्सिंग और रूपांतरण: JavaScript को पार्स किया जाता है और कोड के निष्पादन से उत्पन्न रेंडर ट्री को बनाया जाता है।

रेंडर ट्री के निष्पादन और पेज की प्रदर्शनीय रूप से स्थानीयता: रेंडर ट्री के संरचन के आधार पर, ब्राउज़र पेज को डिस्प्ले करने के लिए लेआउट और पेंटिंग प्रक्रिया को शुरू करता है।

यह प्रक्रिया महत्वपूर्ण है क्योंकि यह विशेष तत्वों को प्राथमिकता देती है जिन्हें उपयोगकर्ता को पहले दिखाना है। अधिक दूरदर्शी एप्लिकेशन विकसकों को महत्वपूर्ण रेंडरिंग मार्ग को समझने और प्रभावी तरीके से वेब पृष्ठ की लोडिंग प्रदर्शनीयता को बढ़ाने में मदद करता है।


-------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------




0 comments on commit deb581d

Please sign in to comment.