जावास्क्रिप्ट साक्षात्कार कैसे पास करें: डेवलपर के लिए गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जावास्क्रिप्ट साक्षात्कार की तैयारी कैसे करें: पूर्ण गाइड

\n\n

जावास्क्रिप्ट साक्षात्कार स्कूल की परीक्षा नहीं है, जहाँ आपको केवल उत्तर याद करने होते हैं। यह एक बातचीत है, जिसमें न केवल आपके सिंटैक्स ज्ञान की जाँच की जाती है, बल्कि सोचने की क्षमता, भाषा के तंत्र को समझने और वास्तविक समस्याओं को हल करने की क्षमता भी देखी जाती है। यदि आपको लगता है कि आप क्लोजर में कमज़ोर हैं, this में भ्रमित होते हैं, और event loop से डरते हैं - तो चिंता न करें। हमने एक संरचित मार्गदर्शिका तैयार की है जो आपको जावास्क्रिप्ट साक्षात्कार में आत्मविश्वास से पास होने में मदद करेगी।

\n\n

JS साक्षात्कार की तैयारी करना इतना कठिन क्यों है?

\n\n

जावास्क्रिप्ट एक आत्मा वाली भाषा है (और कभी-कभी आश्चर्यों के साथ)। एक ही फ़ंक्शन संदर्भ के आधार पर अलग-अलग व्यवहार कर सकता है। इसलिए जावास्क्रिप्ट साक्षात्कार में आपसे केवल यह नहीं पूछा जाता कि "कोड क्या आउटपुट देगा" - आपसे यह समझाने के लिए कहा जाता है कि क्यों। और यहीं पर कई लोग असफल हो जाते हैं। लेकिन हम आपको इन छिपी समस्याओं को पकड़ना सिखाएंगे।

\n\n

1. मूल बातें जो आपको कंठस्थ होनी चाहिए

\n\n

डेटा प्रकार और टाइप कन्वर्जन

\n\n

आधार से शुरू करते हैं। जावास्क्रिप्ट में 7 प्रिमिटिव प्रकार हैं: string, number, boolean, null, undefined, symbol, bigint - और एक जटिल: object। लेकिन चाल यह है कि typeof null "object" लौटाता है - यह एक ऐतिहासिक गलती है जिसे आपको जानना चाहिए।

\n\n

जावास्क्रिप्ट साक्षात्कार में अक्सर अंतर्निहित टाइप कन्वर्जन के बारे में पूछा जाता है। उदाहरण के लिए:

\n\n
console.log([] + []);   // ""\nconsole.log([] + {});   // "[object Object]"\nconsole.log({} + []);   // 0 (ब्राउज़र कंसोल में)\n
\n\n

ऐसा क्यों? क्योंकि ऑपरेटर + ऑपरेंड को प्रिमिटिव में बदलने का प्रयास करता है, toString() या valueOf() को कॉल करके। याद रखें: खाली ऐरे खाली स्ट्रिंग में बदल जाता है, और ऑब्जेक्ट स्ट्रिंग "[object Object]" में बदल जाता है।

\n\n

क्लोजर और लेक्सिकल एनवायरनमेंट

\n\n

यह जावास्क्रिप्ट साक्षात्कार में सबसे आम विषयों में से एक है। क्लोजर एक ऐसा फ़ंक्शन है जो अपने बाहरी स्कोप के वेरिएबल्स को "याद" रखता है, भले ही बाहरी फ़ंक्शन ने काम करना बंद कर दिया हो।

\n\n
function createCounter() {\n  let count = 0;\n  return function() {\n    count++;\n    return count;\n  };\n}\n\nconst counter = createCounter();\nconsole.log(counter()); // 1\nconsole.log(counter()); // 2
\n\n

साक्षात्कार में आपसे ऐसा फ़ंक्शन लिखने या यह समझाने के लिए कहा जा सकता है कि var के साथ लूप में क्लासिक समस्या क्यों होती है:

\n\n
for (var i = 0; i < 5; i++) {\n  setTimeout(() => console.log(i), 1000);\n}\n// आउटपुट: 5, 5, 5, 5, 5
\n\n

समाधान - let का उपयोग करें या क्लोजर में लपेटें। यह समझाना सुनिश्चित करें कि var का स्कोप फंक्शनल होता है, ब्लॉक स्कोप नहीं।

\n\n

2. "This" - हर JS डेवलपर का दर्द और खुशी

\n\n

this के बारे में प्रश्न - यह एक क्लासिक विषय है। नियम सरल है: this का मान इस बात से निर्धारित होता है कि फ़ंक्शन को कैसे कॉल किया गया है, न कि यह कहाँ घोषित किया गया है।

\n\n
    \n
  • ग्लोबल कॉन्टेक्स्ट में (ब्राउज़र में) this window है।
  • \n
  • ऑब्जेक्ट की मेथड में - वह ऑब्जेक्ट ही।
  • \n
  • कंस्ट्रक्टर फ़ंक्शन में - नया इंस्टेंस।
  • \n
  • एरो फ़ंक्शन में - this बाहरी लेक्सिकल एनवायरनमेंट से आता है।
  • \n
\n\n

साक्षात्कार के लिए उदाहरण:

\n\n
const obj = {\n  name: "JS",\n  getName: function() {\n    return this.name;\n  }\n};\n\nconst fn = obj.getName;\nconsole.log(fn()); // undefined (कॉन्टेक्स्ट खो गया)
\n\n

इसे कैसे ठीक करें? bind, call, apply या एरो फ़ंक्शन का उपयोग करें।

\n\n

3. Event Loop और एसिंक्रोनसिटी - सितारों के लिए विषय

\n\n

event loop की समझ के बिना आप मध्यम स्तर का जावास्क्रिप्ट साक्षात्कार पास नहीं कर पाएंगे। अनुक्रम याद रखें: पहले सभी सिंक्रोनस कोड निष्पादित होते हैं (स्ट

ब्लॉग

पुस्तक अनुशंसाएँ