Questions

Primitive and Refrence Types

JavaScript mein data types do categories mein divide hote hain:
1 Primitive Types
2 Reference Types

1 Primitive Types: Primitive types woh data hote hain jo directly value store karte hain aur unki copy banane par ek nayi copy create hoti hai (independent).



2 Reference Types: Reference types woh hote hain jo memory location ka reference store karte hain. Agar ek variable dusre variable ko assign kare, toh woh reference (pointer) share karta hai, value nahi.



Real-Life Analogy:
Primitive Types: Jaise aapki notebook jisme directly aap likhte hain. Agar kisi ko uska copy karein, toh dono apni independent notebook likh rahe hote hain.
Reference Types: Jaise ek Google Doc. Agar aap kisi ke saath share karein, toh dono same doc par kaam kar rahe hote hain. Ek ki change dusre ko bhi dikhti hai.

String Methods

charAt() Kisi string mein di gayi index position par character return karta hai.

let str = "Hello";
console.log(str.charAt(1)); // Output: "e"


concat() Do ya zyada strings ko combine (concatenate) karta hai.


includes() Check karta hai ke ek string mein koi substring hai ya nahi.

let str = "JavaScript is awesome";
console.log(str.includes("awesome")); // Output: true


indexOf() Substring ki pehli occurrence ka index return karta hai.

let str = "JavaScript";
console.log(str.indexOf("a")); // Output: 1


Slice() String ka ek portion extract kar ke return karta hai.

let str = "Hello World";
console.log(str.slice(0, 5)); // Output: "Hello"


split() String ko tod kar ek array mein convert karta hai.

let str = "a,b,c";
console.log(str.split(",")); // Output: ["a", "b", "c"]


toLowerCase() / toUpperCase() String ko lowercase ya uppercase mein convert karta hai.


trim() String ke start aur end ke spaces ko remove karta hai.


replace() Ek substring ko dusre se replace karta hai.

let str = "Hello World";
console.log(str.replace("World", "JavaScript")); // Output: "Hello JavaScript"



Push vs Pop

push() ek JavaScript array method hai jo array ke aakhir mein naya element ya elements add karta hai aur array ki updated length return karta hai.

pop() pop ek JavaScript array method hai jo array ke aakhri element ko remove karta hai aur us element ko return karta hai. Agar array khali ho, toh undefined return hota hai.

Unshift vs Shift

unshift() unshift ek JavaScript array method hai jo array ke start mein ek ya zyada elements add karta hai aur array ki updated length return karta hai.

shift() shift ek JavaScript array method hai jo array ke start se ek element remove karta hai aur us element ko return karta hai. Agar array khali ho, toh undefined return hota hai.

Loop

Loop: Loop ek programming construct hota hai jo ek certain block of code ko bar bar execute karne ke liye use hota hai jab tak ek specified condition satisfy hoti hai.

  • for loop
  • while loop
  • do while loop
  • for in loop
  • for of loop
  • Types of Loop

    for Loop: for loop ek aisa loop hai jo specific number of times code ko repeat karta hai. Yeh tab use hota hai jab aapko pehle se pata ho ke kitni baar loop chalana hai.

        for (let i = 0; i < 5; i++) {
          console.log(i); // Output: 0, 1, 2, 3, 4
        }
      

    while Loop: Jab tak condition true ho, tab tak loop chalega. Yeh tab useful hai jab iterations ka count pehle se nahi pata ho.

            let num = 0;
            while (num < 5) {
              console.log(num); // Output: 0, 1, 2, 3, 4
              num++;
            }        
          

    Do while Loop: Yeh loop kam se kam ek baar zaroor chalta hai, chahe condition false hi ho.

          let num = 0;
          do{
            console.log(num); // Output: 0
            num++;
          } while(num < 0);
          

    for in Loop: Objects ke keys ya properties ko iterate karne ke liye use hota hai.

            let obj = { name: "Ali", age: 25 };
            for (let key in obj) {
              console.log(key, obj[key]); // Output: name Ali, age 25
            }        
          

    for of Loop: Arrays ya iterable objects (like strings, maps, sets) ke elements ko iterate karne ke liye.

            let arr = [10, 20, 30];
            for (let value of arr) {
              console.log(value); // Output: 10, 20, 30
            }         
          

    For in vs For of

    For in: Yeh loop kisi object ya array ke keys ya indexes par iterate karta hai, aur iska use objects ke liye hota hai (properties ko access karne ke liye). Arrays ke saath use karne par yeh indexes return karta hai, jo array ke har element ka position number hota hai.
    For of: Yeh loop iterable objects (arrays, strings, maps, sets) ke actual values par iterate karta hai. Iska focus indexes ke bajaye data (values) par hota hai, aur yeh objects ke liye kaam nahi karta.

    Map()

    Definition: map ek array method hai jo har element par ek function lagata hai aur naya array banata hai transformed values ke saath. Yeh original array ko bilkul change nahi karta aur hamesha ek new array return karta hai.

    Key Points:

    Har element par kaam karta hai aur uska naya result deta hai.
    Original array unchanged rehta hai.
    Hamesha ek nayi array return karta hai.

          const numbers = [1, 2, 3];
          const doubled = numbers.map(num => num * 2);
          
          console.log(doubled); // [2, 4, 6] (naya array)
          console.log(numbers); // [1, 2, 3] (original array unchanged)
        

    For Each()

    Definition: map ek array method hai jo har element par ek function lagata hai aur naya array banata hai transformed values ke saath. Yeh original array ko bilkul change nahi karta aur hamesha ek new array return karta hai.

    Key Points:

    Har element par kaam karta hai aur uska naya result deta hai.
    Original array unchanged rehta hai.
    Hamesha ek nayi array return karta hai.

    Shalow Copy

    Shalow Copy: Shalow copy upper se copy kr leta hn but deep copy nahi kr pata
    example:

    ye name ko or age ko copy kr ly ga but nested hoi hoi chezon ko nahi kr pay ga jese facebook twiiter ko copy nahi kr pay ga

    use spread operator {...obj} to get deep copy from spread operator but it copy objects not deep and nested object

    Deep Copy

    Deep Copy:Deep copy deep tk objects ko copy kr leta hn means proper copy krna nested object and array ko deep copy krna.

    ye niche ek method hn deep copy kar raha hn jo ke just practice ke liye hn, ye ham Interview me nahi batynge

    ye niche ek recursive function hn jo ke deep copy kr raha hn object ki or arrays ki agr koi premitive data dynge to wo return kr dy ga

    What is a Promise?

    PromisesA Promise ek object hai jo asynchronous code ke result ko manage karta hai.
    Yeh 3 states me ho sakta hai:



    How to Use Promises?

    Types of Promises

    1) Promise.all()



    2) Promise.allSettled()


    Example:


    Output:



    3) Promise.race()


    Example:


    4) Promise.any() (ES2021)


    Example:


    5) Promise.resolve()


    Example:


    6) Promise.reject()


    Example:


    Conclusion - Promises

    What is Methods

    function inside object is called Methods

    Spread Operator (...)

    Spread operator ek modern JavaScript feature hai jo ek array ya object ke elements ko alag-alag (spread) karne ke liye use hota hai.

    Example:

    Rest Operator (...)

    Rest operator ka use multiple elements ko ek array ya object ke andar "collect" karne ke liye hota hai. Ye zyada tar destructuring aur functions ke arguments handle karne ke liye use hota hai.

    Example:

    Use of Spread Operator and Rest Operator

    Spread Operator:


    Rest Operator:

    Destructuring in JavaScript

    Destructuring in JavaScriptDestructuring ek JavaScript syntax hai jo arrays aur objects ke elements ko extract (nikalne) aur unhe alag variables mein store karne ke liye use hoti hai. Iska kaam hai code ko concise aur readable banana.

    Types of Destructuring:


    1) Array Destructuring

    Array destructuring ka use array ke elements ko alag variables mein extract karne ke liye hota hai.


    2) Object Destructuring

    Array destructuring ka use array ke elements ko alag variables mein extract karne ke liye hota hai.

    Conclusion Destructuring ek powerful aur modern JavaScript feature hai jo code ko concise, readable, aur manageable banata hai. Ye har modern JavaScript developer ka tool hai, especially jab aapko APIs, React, ya complex data structures ke sath kaam karna ho.