प्रो जावास्क्रिप्ट प्रोग्रामर साक्षात्कार प्रश्न (उत्तर के साथ) [बंद]


131

यदि आवेदक वास्तव में एक समर्थक जावास्क्रिप्ट (ब्राउज़र साइड) डेवलपर है, तो यह निर्धारित करने के लिए अच्छे प्रश्न क्या हैं?

ऐसे प्रश्न जो किसी के तदर्थ जावास्क्रिप्ट प्रोग्रामर नहीं हैं, लेकिन वास्तव में पेशेवर जावास्क्रिप्ट विकास, वस्तु-उन्मुख, पुन: प्रयोज्य और बनाए रखने योग्य हो सकते हैं।

कृपया उत्तर प्रदान करें , इसलिए एक मध्यवर्ती और तदर्थ जावास्क्रिप्ट प्रोग्रामर किसी और अधिक अनुभवी व्यक्ति का साक्षात्कार कर सकते हैं, जो उन कुछ उन्नत प्रश्नों के उत्तर के साथ आ रहे हैं, मुझे हटा देंगे। कृपया खुले प्रश्नों से बचें

बेहतर पढ़ने के अनुभव और आसान साक्षात्कार की तैयारी के लिए कृपया एक साक्षात्कार प्रश्न / उत्तर प्रति SO उत्तर दें


21
कभी भी इंटरमीडिएट जेएस डेवलपर का इंटरव्यू नहीं लेना चाहिए जो अधिक उन्नत माना जाता है! वह सिर्फ पागल है। क्या किसी ने इंटरव्यू देने के लिए क्वालिफाई किया है।
जेम्स

22
@JP - तो अगर आपका सीनियर डेवेलपर क्विट करता है, तो आप बस खराब हो गए हैं?
tvanfosson

15
@ जेपी मैं खुद से बेहतर किसी को रोजगार देने की कोशिश कर रहा हूं। यह एक छोटा सा स्टार्टअप है, इसलिए मेरे पास बेहतर विकल्प नहीं है, जब तक कि मैं बाहर की मदद का उपयोग नहीं करता ... लेकिन तब मुझे साक्षात्कार करना होगा;)
Janusz Skonieczny

13
@ जेपी: यदि आप ऐसे लोगों को काम पर रख रहे हैं जो आपके जैसे ही सबसे अच्छे हैं, तो एक दिन आप बेवकूफों से घिर जाएंगे। हमेशा किसी ऐसे व्यक्ति को काम पर रखने की कोशिश करें जो आपसे बेहतर हो।
गुम्बो

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

जवाबों:


118

क्योंकि जावास्क्रिप्ट इतनी छोटी भाषा है, फिर भी अविश्वसनीय जटिलता के साथ, आपको अपेक्षाकृत बुनियादी सवाल पूछने और यह पता लगाने में सक्षम होना चाहिए कि क्या वे वास्तव में अपने उत्तरों के आधार पर अच्छे हैं। उदाहरण के लिए, मेरे साक्षात्कार के बाकी हिस्सों को समझने के लिए मेरा पहला प्रश्न है:

जावास्क्रिप्ट में, के बीच अंतर क्या है var x = 1और x = 1? आप जितना सहज महसूस करते हैं, उतने या कम विस्तार में उत्तर दें।

नौसिखिया जेएस प्रोग्रामर स्थानीय लोगों के बारे में एक मूल जवाब हो सकता है। इंटरमीडिएट जेएस लोगों के पास निश्चित रूप से उत्तर होना चाहिए, और संभवतः फ़ंक्शन-स्तरीय गुंजाइश का उल्लेख करना चाहिए। खुद को "उन्नत" जेएस प्रोग्रामर कहने वाले किसी को भी स्थानीय लोगों के बारे में बात करने के लिए तैयार होना चाहिए, ग्लोबल्स, windowऑब्जेक्ट, फ़ंक्शन-स्कोप, घोषणा उत्थापन और स्कोप चेन। इसके अलावा, मैं इसके बारे में सुनना पसंद करूंगा [[DontDelete]], पूर्वता (बनाम varबनाम पैरामीटर function), और उत्थापन undefined

एक और अच्छा सवाल यह है कि उन्हें एक sum()फ़ंक्शन लिखने के लिए कहा जाए जो किसी भी तर्क को स्वीकार करता है, और उनकी राशि लौटाता है। फिर, उन्हें किसी सरणी में सभी मानों को योग करने के लिए उस फ़ंक्शन (संशोधन के बिना) का उपयोग करने के लिए कहें। उन्हें एक फ़ंक्शन लिखना चाहिए जो इस तरह दिखता है:

function sum() {
  var i, l, result = 0;
  for (i = 0, l = arguments.length; i < l; i++) {
    result += arguments[i];
  }
  return result;
}
sum(1,2,3); // 6

और उन्हें इसे आपके सरणी पर इस तरह लागू करना चाहिए (संदर्भ applyजो भी हो, मैं आमतौर पर nullउस मामले में उपयोग करता हूं ):

var data = [1,2,3];
sum.apply(null, data); // 6

यदि उन्हें वे उत्तर मिल गए हैं, तो वे शायद उनके जावास्क्रिप्ट को जानते हैं। फिर आपको उन्हें गैर-जेएस विशिष्ट सामान जैसे परीक्षण, वर्कफ़्लोज़, संस्करण नियंत्रण आदि के बारे में पूछने के लिए आगे बढ़ना चाहिए ताकि यह पता चल सके कि वे एक अच्छे प्रोग्रामर हैं या नहीं


4
अच्छा प्रश्न। लघु निपिक: मेरा मानना ​​है कि आप "वापसी मैं" के बजाय "वापसी परिणाम" का मतलब है। प्रो-टिप: पोस्ट करने से पहले कोड का परीक्षण करने के लिए एक अच्छा सा परीक्षण वातावरण सेट करें ;-)
मिस्टरमिस्टर

4
वाह, यह एक मूर्खतापूर्ण गलती है। मैं पोस्ट करने से पहले jsFiddle पर अपने अधिकांश कोड का परीक्षण करता हूं, लेकिन यह परीक्षण नहीं किया। धन्यवाद :)
बेचेरी

5
योग फ़ंक्शन त्रुटियों को फेंकने के बिना गैर संख्या प्रकारों के लिए लचीला होना चाहिए। इसके अलावा यह अतिरिक्त क्रेडिट के लिए स्ट्रिंग्स के रूप में संख्याओं को संभालने में सक्षम होना चाहिए।
अबदबा

2
+1 महान उल्लेख और भेद के बारे में यह पता लगाने के लिए कि क्या वे एक अच्छे प्रोग्रामर हैं।
डेमोनसेले ३३५

3
यह पंक्ति: के लिए (i = 0, l = आर्ग्युमेंट्स। लर्निंग; i <l; i ++) खराब है क्योंकि आर्ग्युमेंट्स। लर्निंग का मूल्यांकन हर पुनरावृत्ति में किया जाएगा। यदि आप l = आर्ग्युमेंट्स असाइन करते हैं। लूप के लिए इससे पहले कि यह बेहतर हो जाए। सही?
थॉमसन

94

बेसिक जेएस प्रोग्रामिंग

  • Scope of variable
  • क्या है Associative Array? हम इसका प्रयोग कैसे करते हैं?

OOPS जेएस

  • Difference between Classic Inheritance and Prototypical Inheritance
  • क्या है difference between private variable, public variable and static variable ? जेएस में हम इसे कैसे हासिल करते हैं?
  • कैसे add/remove properties to objectरन टाइम में ?
  • कैसे प्राप्त करें? inheritance ?
  • कैसे extend built-in objects ?
  • क्यों extending array is bad idea?

डोम और जेएस

  • Difference between browser detection and feature detection
  • DOM Event Propagation
  • Event Delegation
  • Event bubbling V/s Event Capturing

विविध

  • Graceful Degradation V/s Progressive Enhancement

17
यह जेएस गुरु को काम पर रखने के लिए है।
एंड्रियास

22
JS डेवलपर के लिए इस तरह से कुछ कहने के लिए तैयार रहें: जावास्क्रिप्ट में साहचर्य सरणियाँ नहीं हैं। जावास्क्रिप्ट, हालांकि, वस्तु शाब्दिक है, जिसका उपयोग साहचर्य सरणियों की तरह किया जा सकता है। इसके अलावा, ऑब्जेक्ट के गुणों को डॉट नोटेशन या स्क्वायर ब्रैकेट और स्ट्रिंग्स का उपयोग करके एक्सेस किया जा सकता है।
क्रिस्टोफर पार्कर

8
ये किसी ऐसे व्यक्ति के लिए आधार रेखा हैं जो खुद को 'जावास्क्रिप्ट डेवलपर' कहता है। मुझे लगता है कि उत्तर की गहराई यह है कि आप उन्हें गुरु के रूप में कैसे समझेंगे या नहीं।
रयान ओर

8
आपका मतलब है "प्रोटोटाइप इनहेरिटेंस।" सामान्य गलती।
Wizzard

4
@ क्विज़ का अर्थ है 'विशिष्ट गलती': पी
निक

24

"इस" के बारे में पूछें। यह एक अच्छा सवाल है जो जावास्क्रिप्ट डेवलपर की सच्ची परीक्षा हो सकती है।


क्या आप किसी अच्छे लेख का लिंक प्रदान कर सकते हैं?
०३ पर जानूस स्कोनीक्ज़नी

2
मुझे लगता है कि यह सवाल stackoverflow.com/questions/2148451/… में
अनिल नामदेव



17

(मैं मान रहा हूँ कि आप ब्राउज़र साइड जावास्क्रिप्ट का मतलब है)

उससे पूछें कि, जावास्क्रिप्ट के अपने अनंत ज्ञान के बावजूद, यह अभी भी एक अच्छा विचार है कि मौजूदा चौखटे जैसे कि jQuery, Mootools, प्रोटोटाइप, आदि का उपयोग करें।

उत्तर: अच्छा कोडर्स कोड, महान कोडर्स का पुन: उपयोग। ब्राउज़र विशिष्ट कार्यान्वयन से दूर डोम क्षमताओं को अमूर्त करने के लिए हजारों आदमी घंटे इन पुस्तकालयों में डाले गए हैं। सभी ब्राउज़र के माध्यम से जाने का कोई कारण नहीं है DOM फ़िक्सेस को रीइनवेंट करने के लिए स्वयं को सिरदर्द करता है।


5
@ डाउन डाउन: निश्चित रूप से, लेकिन यदि आप एक सम्मानित पैकेज पाते हैं, तो पैकेज के लगभग सभी हिस्सों की समीक्षा सक्षम लोगों द्वारा की गई होगी। और एक खुले स्रोत पैकेज के उपयोगकर्ता के रूप में, आप अपनी गलतियों को सुधारने के साथ-साथ अपनी विशेषज्ञता को भी जोड़ सकते हैं।
PanCrit

सच है, पहिया को जानें - लेकिन हमेशा अलग-अलग इलाकों के लिए एक ही टायर का उपयोग न करें। उदाहरण के लिए। जब आप की जरूरत हो तो पूरे jQuery का उपयोग क्यों करें (आपकी परियोजना के लिए) अजाक्स परिवहन आदि - microjs.com
अली

1
इस प्रश्न का उत्तर स्वयं एक प्रश्न है - हम अपने कोड को संपादित करने के लिए IDE और साधारण नोटपैड का उपयोग क्यों करते हैं? :)
नवीन इसरानी

11

उनसे पूछें कि जब उपयोगकर्ता जावास्क्रिप्ट बंद कर देते हैं या जावास्क्रिप्ट उपलब्ध नहीं होता है, तो वे सुनिश्चित करते हैं कि उनके पृष्ठ कैसे उपयोग किए जा सकते हैं।

कोई एक सच्चा उत्तर नहीं है, लेकिन आप प्रगतिशील उत्तरोत्तर के लिए कुछ रणनीतियों के बारे में बात करने वाले उत्तर के लिए मछली पकड़ रहे हैं ।

प्रगतिशील संवर्धन में निम्नलिखित मुख्य सिद्धांत शामिल हैं:

  • मूल सामग्री सभी ब्राउज़रों के लिए सुलभ होनी चाहिए
  • बुनियादी कार्यक्षमता सभी ब्राउज़रों के लिए सुलभ होनी चाहिए
  • विरल, अर्थ मार्कअप में सभी सामग्री होती है
  • बढ़ा हुआ लेआउट बाह्य रूप से जुड़े सीएसएस द्वारा प्रदान किया गया है
  • बढ़ा व्यवहार [[विनीत जावास्क्रिप्ट | विनीत]] द्वारा प्रदान किया जाता है, बाहरी रूप से जुड़ा हुआ जावास्क्रिप्ट
  • अंत उपयोगकर्ता ब्राउज़र वरीयताओं का सम्मान किया जाता है

1
वास्तुकार स्तर के जेएस आदमी को किराए पर लेने का सबसे अच्छा सवाल :)
नवीन इसरानी

सबसे पहले, मुझे विश्वास दिलाएं कि जेएस के साथ एक व्यक्ति को ठुकरा दिया जाना वास्तविक वेब में निवेश करने के लायक है न कि डार्क-वेब में। उन उपयोगकर्ताओं को शायद एक ब्राउज़र का उपयोग करने और गलती से जेएस बंद होने के बारे में पीढ़ी-दर-पीढ़ी या अस्पष्टता है, किसी भी तरह से, उनके बदलने की संभावना कोई भी पतली नहीं है।
vsync


6

पूछें "आप किस इकाई परीक्षण ढांचे का उपयोग करते हैं? और क्यों?"

आप यह तय कर सकते हैं कि वास्तव में परीक्षण ढांचे का उपयोग करना वास्तव में आवश्यक है, लेकिन बातचीत आपको बहुत कुछ बता सकती है कि व्यक्ति कितना विशेषज्ञ है।


1
एक संदर्भ के रूप में, क्वनिट अद्भुत है: docs.jquery.com/QUnit
Goyuix

0

मध्यवर्ती प्रोग्रामर को अपने उपकरणों की तकनीकी महारत होनी चाहिए।

अगर वह ऊपर तकनीकी फोन स्क्रीन-एस्के सवालों को पार कर गया है, तो उसे मौके पर बेवकूफ बनाने के लिए स्केच बनाएं, जैसे कि अजाक्स यूरिन शॉर्टनर। फिर उसे अपने पोर्टफोलियो पर ग्रिल करें। इस डोमेन में कोई अद्भुत पोर्टफोलियो = मध्यवर्ती डेवलपर नहीं है और न ही वह व्यक्ति जिसे आप अपनी चमकदार नई परियोजना के प्रभारी चाहते हैं।


4
पोर्टफोलियो एक गरीब मेट्रिक है - आज की दुनिया में, जेएस एंटरप्राइज़ की दुनिया में एक पूरी तरह से स्वीकृत उपकरण है, जहां परियोजनाएं शायद किसी भी पोर्टफोलियो को हरा देती हैं जो आप देख सकते हैं, और जहां सार्वजनिक प्रतिनिधि एक चीज नहीं हैं।
इल्या एजेंशटोक

1
@IlyaAyzenshtok यह मेरी दुविधा का हिस्सा है। मेरे लिए एक पोर्टफोलियो दिखाने के लिए मुश्किल है जब मेरे काम का 99% मालिकाना हक / भुगतान दीवार / आंतरिक के पीछे है ...
स्पार्टाकस

1
@ सपार्टस - आप स्क्रीनशॉट ले सकते हैं और साक्षात्कारकर्ता को इसमें अपना नियम समझा सकते हैं और रास्ते में बाधा डाल सकते हैं। ओपन-सोर्स प्रोजेक्ट्स के बारे में, वे परियोजनाओं में देखे गए व्यक्ति के कोडिंग स्तर के सापेक्ष प्रश्नों को समायोजित करने के लिए एक साक्षात्कार से पहले किसी व्यक्ति का आकलन करने का एक शानदार तरीका हैं।
vsync
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.