JavaScript इंटरव्यू प्रश्न और उत्तर (JavaScript Interview Questions and Answers)

JavaScript इंटरव्यू प्रश्न और उत्तर (JavaScript Interview Questions and Answers)

JavaScript एक प्रमुख प्रोग्रामिंग भाषा है जिसका उपयोग वेब डेवलपमेंट में क्लाइंट-साइड और सर्वर-साइड दोनों प्रकार की स्क्रिप्टिंग के लिए किया जाता है। इस ब्लॉग पोस्ट में, हम कुछ महत्वपूर्ण JavaScript इंटरव्यू प्रश्नों पर चर्चा करेंगे और उनके उत्तर हिंदी और अंग्रेजी दोनों में देंगे।

1. JavaScript क्या है? (What is JavaScript?)

हिंदी में:
JavaScript एक उच्च-स्तरीय, गतिशील, और इंटरप्रेटेड प्रोग्रामिंग भाषा है, जिसका उपयोग मुख्य रूप से वेब पेजों के इंटरैक्टिव फीचर्स को बढ़ाने के लिए किया जाता है। यह एक क्लाइंट-साइड स्क्रिप्टिंग भाषा है जो अब Node.js के साथ सर्वर-साइड भी उपयोग की जाती है।

In English:
JavaScript is a high-level, dynamic, and interpreted programming language primarily used to enhance the interactivity of web pages. It is a client-side scripting language, but with Node.js, it is also used server-side.

2. JavaScript और Java में क्या अंतर है? (What is the difference between JavaScript and Java?)

हिंदी में:
Java और JavaScript दो अलग-अलग प्रोग्रामिंग भाषाएँ हैं।

  • Java एक ओब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है, जिसका उपयोग एंटरप्राइज-लेवल एप्लिकेशंस और एंड्रॉइड ऐप्स डेवलपमेंट में किया जाता है।
  • JavaScript एक स्क्रिप्टिंग भाषा है, जिसका उपयोग वेब पेजों में इंटरैक्टिविटी जोड़ने के लिए किया जाता है। JavaScript आमतौर पर ब्राउज़र पर चलता है, जबकि Java एक प्लेटफॉर्म-इंडिपेंडेंट भाषा है।

In English:
Java and JavaScript are two different programming languages.

  • Java is an object-oriented programming language used for enterprise-level applications and Android app development.
  • JavaScript is a scripting language used to add interactivity to web pages. JavaScript typically runs in the browser, while Java is a platform-independent language.

3. JavaScript में डेटा प्रकार कौन से हैं? (What are the data types in JavaScript?)

हिंदी में:
JavaScript में निम्नलिखित डेटा प्रकार होते हैं:

  • String (स्ट्रिंग): टेक्स्ट को स्टोर करने के लिए।
  • Number (नंबर): संख्या, चाहे इंटीजर हो या फ्लोट।
  • Boolean (बूलियन): ट्रू या फॉल्स मानों के लिए।
  • Undefined (अनडिफाइंड): वैरिएबल जिसे कोई मान असाइन नहीं किया गया है।
  • Null (नल): शून्य मान, जिसका मतलब कुछ नहीं है।
  • Object (ऑब्जेक्ट): कुंजी-मूल्य जोड़े को स्टोर करने के लिए।
  • Symbol (सिंबल): एक यूनिक और अपरिवर्तनीय डेटा प्रकार, जो ES6 में जोड़ा गया।

In English:
JavaScript has the following data types:

  • String: For storing text.
  • Number: For numbers, whether integer or float.
  • Boolean: For true or false values.
  • Undefined: For variables that have not been assigned a value.
  • Null: Represents a null value, meaning nothing.
  • Object: For storing key-value pairs.
  • Symbol: A unique and immutable data type introduced in ES6.

4. let, var, और const में क्या अंतर है? (What is the difference between let, var, and const?)

हिंदी में:

  • var: यह फंक्शन स्कोप में बंधा होता है और इसे ES6 से पहले उपयोग किया जाता था। इसे पुनः घोषित किया जा सकता है।
  • let: यह ब्लॉक स्कोप में बंधा होता है और इसे पुनः घोषित नहीं किया जा सकता।
  • const: यह भी ब्लॉक स्कोप में बंधा होता है, लेकिन इसकी वैल्यू को बदला नहीं जा सकता।

In English:

  • var: It is function-scoped and was used before ES6. It can be re-declared.
  • let: It is block-scoped and cannot be re-declared.
  • const: It is also block-scoped, but its value cannot be changed.

5. JavaScript में होस्टिंग (Hoisting in JavaScript)

हिंदी में:
Hoisting एक JavaScript का डिफ़ॉल्ट व्यवहार है, जिसमें वैरिएबल और फ़ंक्शन डिक्लेरेशन को स्कोप के शीर्ष पर खींच लिया जाता है। इसका मतलब यह है कि आप एक वैरिएबल को उसके डिक्लेरेशन से पहले भी उपयोग कर सकते हैं, लेकिन इसका मान undefined होगा।

In English:
Hoisting is a default behavior in JavaScript where variable and function declarations are moved to the top of their scope. This means you can use a variable before its declaration, but its value will be undefined.

6. JavaScript में क्लोज़र क्या है? (What is a Closure in JavaScript?)

हिंदी में:
Closure एक फ़ंक्शन है जो अपनी परिधि (lexical scope) के बाहर से वैरिएबल्स और पैरामीटर्स तक पहुँच सकता है। यह फ़ंक्शन के साथ उस स्कोप को भी “बंद” कर देता है, जहाँ से इसे कॉल किया गया था।

In English:
A closure is a function that can access variables and parameters from its outer lexical scope. It “closes over” its surrounding scope along with the function itself.

7. JavaScript में this कीवर्ड क्या है? (What is the this keyword in JavaScript?)

हिंदी में:
JavaScript में this कीवर्ड उस ऑब्जेक्ट को संदर्भित करता है जो वर्तमान में कोड को निष्पादित कर रहा है। इसके संदर्भ में भिन्नता हो सकती है, जैसे कि एक फंक्शन के अंदर, एक ऑब्जेक्ट के अंदर, या ग्लोबल स्कोप में।

In English:
In JavaScript, the this keyword refers to the object that is currently executing the code. Its context can vary, such as inside a function, within an object, or in the global scope.

8. JavaScript में ES6 क्या है? (What is ES6 in JavaScript?)

हिंदी में:
ES6, जिसे ECMAScript 2015 के नाम से भी जाना जाता है, JavaScript का एक प्रमुख संस्करण है जिसमें कई नई विशेषताएँ शामिल हैं, जैसे कि let और const कीवर्ड्स, एरो फंक्शंस, टेम्पलेट लिटरेचर्स, और क्लासेस।

In English:
ES6, also known as ECMAScript 2015, is a major version of JavaScript that introduced several new features such as let and const keywords, arrow functions, template literals, and classes.

9. JavaScript में प्रोटोटाइप क्या है? (What is a Prototype in JavaScript?)

हिंदी में:
प्रोटोटाइप एक ऑब्जेक्ट होता है जिससे सभी JavaScript ऑब्जेक्ट्स गुण और तरीके विरासत में प्राप्त कर सकते हैं। हर ऑब्जेक्ट के पास एक प्रोटोटाइप होता है, जो कि उसके निर्माता (constructor) से जुड़ा होता है।

In English:
A prototype is an object from which all JavaScript objects inherit properties and methods. Every object has a prototype, which is linked to its constructor.

10. == और === में क्या अंतर है? (What is the difference between == and ===?)

हिंदी में:

  • == (समानता): यह केवल मानों की तुलना करता है, और यदि प्रकार अलग होते हैं, तो यह उन्हें समानता के लिए परिवर्तित करता है।
  • === (सख्त समानता): यह प्रकार और मान दोनों की तुलना करता है, और अगर दोनों एक जैसे नहीं होते, तो यह false लौटाता है।

In English:

  • == (Equality): It compares values only, and if the types are different, it converts them to the same type before comparing.
  • === (Strict Equality): It compares both type and value, and if they are not the same, it returns false.

10. == और === में क्या अंतर है? (What is the difference between == and ===?)

हिंदी में:

  • == (समानता): यह केवल मानों की तुलना करता है, और यदि प्रकार अलग होते हैं, तो यह उन्हें समानता के लिए परिवर्तित करता है।
  • === (सख्त समानता): यह प्रकार और मान दोनों की तुलना करता है, और अगर दोनों एक जैसे नहीं होते, तो यह false लौटाता है।

In English:

  • == (Equality): It compares values only, and if the types are different, it converts them to the same type before comparing.
  • === (Strict Equality): It compares both type and value, and if they are not the same, it returns false.

12. JavaScript में इवेंट बबलिंग और इवेंट कैप्चरिंग क्या है? (What are Event Bubbling and Event Capturing in JavaScript?)

हिंदी में:

  • इवेंट बबलिंग: यह तब होता है जब एक इवेंट सबसे भीतर के एलिमेंट से शुरू होकर उसके पैरेन्ट्स की ओर बबल होता है।
  • इवेंट कैप्चरिंग: यह तब होता है जब एक इवेंट सबसे बाहरी एलिमेंट से शुरू होकर उसके भीतर के एलिमेंट की ओर जाता है।

In English:

  • Event Bubbling: This occurs when an event starts from the innermost element and bubbles up to its parents.
  • Event Capturing: This occurs when an event starts from the outermost element and trickles down to the innermost element.

13. JavaScript में एक ऑब्जेक्ट को क्लोन कैसे करें? (How do you clone an object in JavaScript?)

हिंदी में:
JavaScript में ऑब्जेक्ट को क्लोन करने के लिए निम्नलिखित तरीके हैं:

  • शैलो क्लोन: Object.assign() या स्प्रेड ऑपरेटर {...obj} का उपयोग करके।
  • डीप क्लोन: JSON.parse(JSON.stringify(obj)) का उपयोग करके या लोदाश जैसी लाइब्रेरी का उपयोग करके।

In English:
To clone an object in JavaScript, you can use the following methods:

  • Shallow Clone: Using Object.assign() or the spread operator {...obj}.
  • Deep Clone: Using JSON.parse(JSON.stringify(obj)) or by using a library like Lodash.

14. JavaScript में डिबगिंग कैसे की जाती है? (How do you perform debugging in JavaScript?)

हिंदी में:
JavaScript में डिबगिंग करने के लिए, आप ब्राउज़र के डिवेलपर टूल्स का उपयोग कर सकते हैं, जिसमें आप console.log(), ब्रेकपॉइंट्स, और debugger स्टेटमेंट का उपयोग कर सकते हैं।

In English:
To perform debugging in JavaScript, you can use the browser’s developer tools, where you can use console.log(), breakpoints, and the debugger statement.

15. JavaScript में फ़ंक्शनल प्रोग्रामिंग क्या है? (What is Functional Programming in JavaScript?)

हिंदी में:
फ़ंक्शनल प्रोग्रामिंग एक प्रोग्रामिंग पेराडाइम है जिसमें फ़ंक्शंस को प्राथमिक नागरिकों के रूप में माना जाता है। JavaScript में, फ़ंक्शनल प्रोग्रामिंग में इम्यूटेबल डेटा, प्योर फ़ंक्शंस, और हाईयर-ऑर्डर फ़ंक्शंस शामिल होते हैं।

In English:
Functional programming is a programming paradigm where functions are treated as first-class citizens. In JavaScript, functional programming includes immutable data, pure functions, and higher-order functions.



Table of Contents

Index