JS
…
← Back to Interview Q&A

हिंदी Interview Q&A

20 ज़रूरी JavaScript सवाल

QA / SDET interviews के लिए मूल भाषा में संक्षिप्त उत्तर. पूरा अंग्रेज़ी बैंक Interview पर है.

Q1 · Language fundamentals

JavaScript के data types

JavaScript में कौन-कौन से data types हैं?

सात primitives: string, number, bigint, boolean, undefined, symbol, null. बाकी सब object हैं — arrays, functions, dates, maps भी. typeof null "object" देता है — पुरानी गलती. typeof function "function" है. "hi".length इसलिए चलता है क्योंकि इंजन अस्थायी String object बनाता है.

Q2 · Language fundamentals

null बनाम undefined

null और undefined कब इस्तेमाल करें?

undefined मतलब अभी सेट नहीं हुआ: missing argument, missing key, uninitialized let. null आप जानबूझकर खाली object value देते हैं. JSON में null होता है, undefined नहीं — stringify undefined keys हटा देता है. API में एक खाली रूप चुनकर उसी पर टिके रहें.

Q3 · Language fundamentals

var, let, const

var, let और const में क्या फ़र्क है?

var function-scoped है, hoist होता है, फिर से declare हो सकता है. let और const block-scoped हैं और initialize होने तक TDZ में रहते हैं. const को reassign नहीं कर सकते, पर object के अंदर बदल सकते हैं. नया कोड: पहले const, फिर let; var से बचें.

Q4 · Language fundamentals

Hoisting

Hoisting क्या है?

Declarations को चलाने से पहले प्रोसेस किया जाता है. Function declaration पूरा hoist होता है. var undefined की तरह hoist होता है. let/const hoist तो होते हैं पर uninitialized रहते हैं (TDZ). const f = function(){} को उस लाइन से पहले कॉल नहीं कर सकते.

Q5 · Language fundamentals

=== बनाम ==

== की जगह === क्यों?

== type coerce करता है ("5" == 5 true). === लगभग बिना coercion compare करता है. NaN !== NaN. पैसा, status code, और assertions में === ही लिखें. Convert पहले करो, फिर ===.

Q6 · Language fundamentals

Type coercion

Type coercion क्या है?

जब operator दूसरे type माँगता है तो JS बदल देता है. + में अगर एक तरफ string है तो जोड़ ("2"+2 → "22"). बाकी गणित number चाहता है ("2"*3 → 6). साफ़ तरीका: Number, String, Boolean.

Q7 · Language fundamentals

Truthy और falsy

कौन सी values falsy हैं?

false, 0, -0, 0n, "", null, undefined, NaN. बाकी truthy — [], {}, "0" भी. if (items) खाली array पर true है। खालीपन के लिए length चेक करें.

Q8 · Language fundamentals

NaN

NaN कैसे पहचानें?

अमान्य गणित या Number("nope"). NaN !== NaN, इसलिए Number.isNaN(x). पुराना isNaN coerce करता है. Number.isFinite साथ में सीखें.

Q9 · Language fundamentals

Pass by value या reference?

Arguments कैसे जाते हैं?

सब pass-by-value है, लेकिन object की value एक reference है. Parameter को नया assign करने से caller नहीं बदलता. Object की property mutate करने से caller दिखता है. Interview में यही वाक्य बोलें.

Q10 · Language fundamentals

Optional chaining

?. क्या करता है?

user?.address?.city — बाईं तरफ null/undefined हो तो undefined लौटाता है, throw नहीं. fn?.() और obj?.[key] भी. Default के लिए ?? जोड़ें.

Q11 · Language fundamentals

Nullish coalescing

?? और || में फ़र्क?

?? सिर्फ़ null या undefined पर दाईं तरफ लेता है. || 0, "" और false को भी missing मानता है. कीमत या count में ?? ही सही है.

Q12 · Functions, scope & closures

Closure

Closure क्या है?

अंदर वाला function बाहर के scope के variables याद रखता है, भले बाहर वाला return हो चुका हो. Privacy, callbacks, Playwright fixtures इसी पर चलते हैं. var वाले for loop में सब timeouts अंतिम i देखते हैं — let इस्तेमाल करें.

Q13 · Functions, scope & closures

this

this कैसे तय होता है?

Call site से: obj.method() में this = obj. अकेला fn() strict में undefined. call/apply/bind सेट करते हैं. new instance देता है. Arrow lexical this लेता है. const f = obj.method; f() this खो देता है.

Q14 · Callbacks, promises & async

Promise

Promise क्यों चाहिए?

एक नतीजा, composable then/catch, callback pyramid से बेहतर errors. CPU parallel नहीं होता. Cancel के लिए AbortController अलग से जोड़ना पड़ता है. Executor तुरंत, sync चलता है.

Q15 · Callbacks, promises & async

async/await

async/await का Promise से रिश्ता?

async function हमेशा Promise लौटाती है. await उसी function को रोकता है, पूरी thread को नहीं. try/catch चलता है. निर्भर काम के लिए क्रम से await; स्वतंत्र कॉल पर Promise.all.

Q16 · Event loop & browser

Event loop

Microtask और timer का क्रम?

पहले sync, फिर microtasks (promise then), फिर timers. await 1 भी microtask है. setTimeout(fn, 0) तुरंत नहीं चलता. टेस्ट में sleep की जगह wait करने वाले locators बेहतर हैं.

Q17 · Language fundamentals

JSON.stringify

JSON क्या छोड़ देता है?

undefined, functions, symbols गायब. Date ISO string बन जाता है. NaN/Infinity → null. Circular throw. Parse के बाद जिन fields की परवाह है उन्हीं को compare करें.

Q18 · Arrays & strings

map, filter, reduce

कब कौन सा?

map हर item बदलकर उतनी ही लंबाई की नई array देता है. filter जो पास हुए वे रखता है. reduce किसी भी नतीजे में मोड़ता है. map के अंदर mutate मत करें.

Q19 · Callbacks, promises & async

fetch

fetch HTTP 404 पर reject क्यों नहीं करता?

Network सफल हो तो fetch resolve होता है, भले status 404 हो. response.ok / status चेक करें. Cancel के लिए AbortController. Progress events के लिए पुराना XHR अभी भी काम आता है.

Q20 · Tricky interview favorites

अच्छी assertion

Fail message में क्या होना चाहिए?

actual और expected दोनों. Objects पर JSON.stringify. खाली catch मत लिखें. Playwright locator expect retry करता है; API assert तुरंत fail होना चाहिए.