7.5 Years Experienced Best Javascript Interview | Chakde Frontend Interview EP - 04

Поділитися
Вставка
  • Опубліковано 9 лют 2025
  • Back again with another episode of "CHAKDE INTERVIEWS" but this around we are going much deeper into the concepts and complexity .
    Last time it was React now it's JS❤️ ....yes It's not just a random interview series , It's a complete package and I have curate the question very strategically so that it will help you crack your next interview.
    Share your answer on the comment box with the time stamp and on Linkedin. Best solution will get pinned on YT comment box.
    Give your love and support to this episode .
    Connect to learn & grow together in our career❤️:
    ✅ Linkedin: / engineerchirag
    ✅ Twitter: / engineerchirag
    ✅ Instagram: / engineerchirag
    Music track: Wanderer by walen
    Source: freetouse.com/...
    No Copyright Background Music
    #interview #react #javascript #chakdeinterviews #frontenddevelopment #mockinterview

КОМЕНТАРІ • 114

  • @artofcoding2010
    @artofcoding2010 8 місяців тому +3

    Best interview series on internet. This video made my day. Thanks Chirag sir once again for this gem

  • @ankitkashyap2005
    @ankitkashyap2005 8 місяців тому +5

    Hey , the question levels are just awesome.. I can't even imagine that this type of questions can be asked in interviews... Will follow this series to be updated

    • @engineerchirag
      @engineerchirag  8 місяців тому +1

      Awesome. Keep learning, keep sharing 🚀

  • @lalit422
    @lalit422 8 місяців тому +1

    Amazing work @Chirag. Even though I have 13 years of experience and have learned a lot from you, Thanks, bro

  • @011arunkumar8
    @011arunkumar8 8 місяців тому +21

    Hi Chirag,I have 1.5 years of experience. Just one week ago, an interviewer asked me the same first question (auto retry api). At that time, I wasn’t able to answer that question😢. I wish I had found this video a little earlier😅. Thank you, Chirag, always love your videos.

    • @pasito287
      @pasito287 8 місяців тому

      🎉🎉🎉🎉

    • @engineerchirag
      @engineerchirag  8 місяців тому +1

      Awesome. More videos to come. Keep learning, keep sharing 🚀

    • @engineerchirag
      @engineerchirag  8 місяців тому +1

      ❤️❤️

    • @shubhamthaker9380
      @shubhamthaker9380 8 місяців тому

      which company and can you please tell me some more intresting questions asked

  • @premkumarnayak2579
    @premkumarnayak2579 8 місяців тому +2

    Chirag, I have following you since a while, I would say you are doing a great job. 👍👍
    The Problem statements you come up with are very unique and organised, I am learning a lot from this series.
    I was expecting someone from same experience level to come for this series.
    I wish I would be there some day on this series as well 😂, Just Kidding.
    For Pavan, I would say, He should be pushed to next Round. 👍
    keep up the great work.

  • @gunjanvyas695
    @gunjanvyas695 8 місяців тому +5

    Yooo!!! Best js interview of the whole Chakde frontend interview series.
    My solution:
    //LRU cache automatic cache clear
    // approach 1: which came to my mind at first
    /*
    lets have a cache array in which i'll be putting cache data
    and will try to add the time when we have added it in it.
    will run a auto clear cache function after certain time and it will check
    sort the array based on time, the items which are added.
    will remove least recently used
    */
    let count = 0;
    let cache = new Array(5);
    cache.fill({ item: "2", time: 10 });
    function addToCache(data) {
    let currentTime = Date.now();
    cache.push({ item: data, time: currentTime + count });
    count++;
    }
    function LRU(data) {
    cache.sort((a, b) => a - b);
    let leastRecentlyUsed = cache[0];
    console.log("leastRecentlyUsed", leastRecentlyUsed);
    cache.shift();
    addToCache(data);
    }
    function pushDataToCache(data) {
    if (cache.length !== 5) {
    addToCache(data);
    }
    else {
    LRU(data);
    }
    }
    pushDataToCache(40);
    pushDataToCache(50);
    pushDataToCache(60);
    pushDataToCache(30);
    pushDataToCache(10);
    pushDataToCache(1);
    pushDataToCache(50);
    console.log(cache);
    function getValueFromCache(data){
    let finding = cache.find(item => item.item === data);
    if(!finding){
    console.log(data, "Not found");
    return;
    }
    console.log(data, "Yes item found",finding);
    }
    getValueFromCache(50);
    getValueFromCache(40);
    Thank you, Chirag Sir

  • @niranjannaik975
    @niranjannaik975 5 місяців тому

    The interesting thing about this interview series is that Chirag always gives you a chance to correct your mistakes. We know that while doing live feature development or coding, we will make small mistakes. Chirag notices those mistakes and give small hints to correct the issues. Thank you, Chirag, for making this amazing series. 👍

  • @chromegoogle-yi4jv
    @chromegoogle-yi4jv 8 місяців тому +3

    Good stuff, many things to learn

    • @engineerchirag
      @engineerchirag  8 місяців тому

      Glad you liked it. Keep watching, keep sharing 🚀

  • @Pawansoni432
    @Pawansoni432 7 місяців тому

    Please keep on doing this.. i love it chirag! Thanks ❤❤

    • @engineerchirag
      @engineerchirag  7 місяців тому

      Keep supporting me, keep sharing these videos on LinkedIn and I will try to bring more and more quality content on UA-cam.
      #goodkarma

  • @wadhwa_neeraj
    @wadhwa_neeraj 8 місяців тому +1

    I think Pawan was updating the timestamp at the time of getting the data/key, that's why the timestamps at the end are the same (same problem as the setAsyncData being passed 0 for timeout value in setTimeout).

  • @madhanrock5390
    @madhanrock5390 8 місяців тому

    Thank you so much for spending time in mock interviews and sharing with us.
    Wonderful session as always ☺️

  • @satyamraoy
    @satyamraoy 5 місяців тому

    can some help me if for the first question where we need to create a function that retry a promise n number of times will this code work this is not proper production ready just a rough to get the idea
    function retryFetch(fetch, maxRetyCount) {
    fetch().then(function (res) {
    console.log(res);
    }).catch(function (err) {
    console.log(err);
    if (maxRetyCount) {
    maxRetyCount -= 1;
    retryFetch(fetch, maxRetyCount);
    }else{
    console.log("rety attempt failed",err);
    }
    });
    }
    function fetcher() {
    return (
    new Promise(function (res, rej) {
    if (Math.random() > 0.5) {
    res("resolved");
    } else {
    rej("rejected");
    }
    })
    );
    }
    I tested it myself seems to be working cna someone proof read it for me I just tried to keep it simple

  • @SumitKumar-no3nt
    @SumitKumar-no3nt 2 місяці тому

    ese kehte interview questions great

  • @jsuryakt
    @jsuryakt 8 місяців тому +2

    Great interview and top candidate 🚀

    • @engineerchirag
      @engineerchirag  8 місяців тому

      Awesome ❣️ Many more to come. Keep watching, keep sharing 🚀

  • @LakshmiPutrevu-qw9lb
    @LakshmiPutrevu-qw9lb 3 місяці тому

    Hi Chirag Sir,
    I have 2-3 years of Experience in JavaScript can i get a chance to do a Mock Interview With you or at least can i get some advice to crack the frontend Coding Interviews from you?
    Awaiting for your Acknowledgment,
    Thank you

  • @Piyush-xv1bb
    @Piyush-xv1bb 8 місяців тому

    One more Gem from Chakde frontend ❤❤❤

    • @engineerchirag
      @engineerchirag  8 місяців тому

      Keep watching, keep sharing 🚀 Many more to come ❤️

  • @kumarswamy2979
    @kumarswamy2979 8 місяців тому

    amazing session. So much to learn. Thanks a lot, Chirag for the take up this series.

  • @wickkjohn
    @wickkjohn 8 місяців тому +1

    Geeting something new everytime,

  • @sumitgupta7553
    @sumitgupta7553 4 місяці тому

    Chirag, You are doing fabulous. I'm learning a lot from your mock interviews. But I do have one query here that your advise to keep map as data structure of cache which will maintain the insertion order and will help us to identify which key should be going to delete while setting new key but when we are going to set one more key in the cache after getting/accessing values from cache then the time will be updated but not the insertion order then still we need to figure out which time stamp is lowest to be excluded using loop. Please correct if I'm thinking in a wrong way and thanks in advance!

  • @ganeshbingi4782
    @ganeshbingi4782 3 місяці тому

    Can we maintain a counter for times of access then we compare based on it least accessed to identify. Will it work?

  • @CK-ir2ke
    @CK-ir2ke 8 місяців тому

    Really nice learning something different from you always new things, please add time stamps if its possible?

  • @mayurwankhade7447
    @mayurwankhade7447 8 місяців тому

    Please share which tool you are using for questions? First i thought it was codepen. But it is something different. Is it made by you?

    • @engineerchirag
      @engineerchirag  8 місяців тому

      DM pls

    • @mayurwankhade7447
      @mayurwankhade7447 8 місяців тому

      @@engineerchirag hello sir, tried to DM on Twitter but it is only for blue tick users. Cannot dm there. Should I dm on LinkedIn?

  • @Coding_Asmr_PraDev
    @Coding_Asmr_PraDev 8 місяців тому

    Keep the series going, really helpful

  • @megatron9151
    @megatron9151 8 місяців тому

    Really good choice of questions. Learnt a lot

  • @mirage4731
    @mirage4731 6 місяців тому

    1st Question - I created a counter and a function which will be executed inside it
    async function fetchWithAutoRetry(fetcher, maxtry = 5) {
    let count = 1;
    async function fetchData() {
    try {
    return await fetcher();
    } catch (err) {
    console.error(`Attempt ${count} failed.`, err);
    if (count < maxtry) {
    count++;
    return await fetchData();
    } else {
    throw new Error("Max retry reached");
    }
    }
    }
    return await fetchData();
    }
    const p1 = () => {
    return new Promise((res, rej) => res(1));
    };
    const p2 = () => {
    return new Promise((res, rej) => (Math.random() < 0.1 ? res(2) : rej(3)));
    };
    fetchWithAutoRetry(p1, 5)
    .then((item) => {
    console.log("fetcher 1", item);
    })
    .catch((err) => {
    console.error("fetcher 1", err);
    });
    fetchWithAutoRetry(p2, 5)
    .then((item) => {
    console.log("fetcher 2", item);
    })
    .catch((err) => {
    console.error("fetcher 2", err);
    });

  • @AmitGupta-su3yw
    @AmitGupta-su3yw 8 місяців тому

    You bring really good question @chirag
    but I will not select this man as he has 9yr of exp. and instead of making thing simple, he just make it more complicated.
    btw thanks for bringing such a question which will help people to thinks in real-time when a person giving interview.

  • @sauravkumarjha6162
    @sauravkumarjha6162 8 місяців тому

    Good stuff. Chiraj could you please upload the mock interview for 2 years experienced candidates.

  • @mohammadsalman9370
    @mohammadsalman9370 8 місяців тому

    Hi Chirag, I have 5+ years of experience in UI development with Tech skills: HTML5,CSS3 Bootstrap,Tailwind CSS,Responsive Design, Media Queries. I have knowledge on Javascript and Vuejs framework just i want to improve deep knowledge and Strong experience in Javascript and other Framework like React. I know the way how to do but coming to real time, i am facing difficulty to solve problems and logical ways. Can you suggest how can I overcome from this difficulties to solve problems in logical way.

    • @engineerchirag
      @engineerchirag  7 місяців тому

      It sounds monotonous but the fact is you can overcome your fear by practicing more and more. Also, you can leverage AI (ChatGpt) where ever you stuck while coding first try to solve on your own & still won't be able figure out then go and ask Gpt. You can try this method.

  • @shubhamsaini5542
    @shubhamsaini5542 8 місяців тому

    very knowledgeable

  • @pratikwadekar4981
    @pratikwadekar4981 8 місяців тому

    What is the code editor that you are using Chirag ?

  • @dhirendraKVlogOfficial
    @dhirendraKVlogOfficial 4 місяці тому

    We Can solve like this. We don't need to use Math.random we can write like this if promise reject then function should call Max Count time.
    async function fetchAutomatically(fetcher, maxCount) {
    if (maxCount {
    return new Promise((res, rej) => rej('Passed'));
    };
    fetchAutomatically(fetcherFn, 5);

  •  8 місяців тому

    Asking Just out of curiosity
    Being an engineering manager at MS, how much you need to code in daily basis?

  • @ankushladani496
    @ankushladani496 8 місяців тому

    Thanks Sirji...❤🎉

  • @PRANAVMAPPOLI
    @PRANAVMAPPOLI 8 місяців тому

    Hi chirag , So for LRU cache question , are you expecting the solution with map & linked list?

  • @minter-07
    @minter-07 8 місяців тому

    What platform you are using to write code? Btw nice and informative video, a request is, your voice echoes a lot so please if possible improve it thanks for the video ❤

    • @engineerchirag
      @engineerchirag  8 місяців тому +1

      Let me work on Audio quality 👍

    • @minter-07
      @minter-07 8 місяців тому

      @@engineerchiragthank you sirji btw what platform it is on which candidate is coding?

  • @MohamedIkram-z5r
    @MohamedIkram-z5r 5 місяців тому

    Hi chirag, I'm interested to give mock interview

  • @sudiptakumardas3547
    @sudiptakumardas3547 8 місяців тому

    Hi Chirag, Can you please suggest some resource where we can practice these type of question?

    • @engineerchirag
      @engineerchirag  8 місяців тому

      Chakde Frontend Interviews series 😛

  • @nisargbarot1998
    @nisargbarot1998 8 місяців тому

    Hi Chirag sir, can you suggest some resources where we can practice these kind of questions to prepare for our interview.

    • @engineerchirag
      @engineerchirag  8 місяців тому

      Chakde Frontend Interviews series 😛

  • @samudralaraju3594
    @samudralaraju3594 8 місяців тому

    Hi sir my self raju .I have been completd gradution since 2018 bsc(science background).After i am prepared competative exms but could not clear the exms.i am intrested to frontend developer can i learn frontend course.your valuble suggestion sir. i am also telugu medium background student

    • @engineerchirag
      @engineerchirag  7 місяців тому

      What motivates you to learn and choose frontend development?
      If you answer this then only I can help you with better suggestion.

  • @deep90402
    @deep90402 8 місяців тому

    Please make videos for react interview as well

    • @engineerchirag
      @engineerchirag  8 місяців тому

      Hey watch this react interview and stay tuned more react interviews are lined up
      ua-cam.com/video/uHGtzBn8luI/v-deo.htmlsi=O24RWRLpjAbZlEm0

  • @BLcKHCK-ct4wn
    @BLcKHCK-ct4wn 8 місяців тому

    Love from kerala ❤

  • @vanchivikash3586
    @vanchivikash3586 8 місяців тому

    can i know where can i get practice problems like those in the video

    • @engineerchirag
      @engineerchirag  8 місяців тому

      Every Saturday on Chakde Frontend Interview series 😛

  • @karthiksundaram544
    @karthiksundaram544 8 місяців тому

  • @onecuriousmuggle
    @onecuriousmuggle 8 місяців тому

    Great set of questions, Chirag. Though, I have a doubt here, Using Map would be helpfull to handle the space complexity better but how is the order insertion helpful? As in map order is only updated at the time whn the values are set for the first time so later on when we set it or last access it, order wont be updated.

    • @engineerchirag
      @engineerchirag  8 місяців тому

      ❤️

    • @prashanttrar9599
      @prashanttrar9599 6 місяців тому

      In case of update, we can first delete the old key from map and then re-insert it, that will maintain the order.

  • @keshavkuljeet2929
    @keshavkuljeet2929 8 місяців тому

    what online compiler are you using to code?

  • @deep90402
    @deep90402 8 місяців тому

    How should junior developer should answer in interview and explain our approach to the interviewer.

  • @DvvAvinash
    @DvvAvinash 8 місяців тому

    Hi Chirag, would you be open to conducting a mock interview with me? I’d really appreciate your guidance and feedback. Thanks!

  • @kishanmundadiya4982
    @kishanmundadiya4982 8 місяців тому

    Sir, what about backend mock interview 😅

  • @kanaiyatiwari6748
    @kanaiyatiwari6748 8 місяців тому

    can you make video on how senior developer code and review code of junior developer

  • @yashsolanki069
    @yashsolanki069 8 місяців тому

    I've had some bad experiences with object in terms of maintaining the order. If the key is something that can be sorted the object follows the sorting stuff. Really weird shit in js. new Map() is what i had solved some of the order maintaining challenges so that should work here as well.
    I must say pawan's skills are top notch💯
    Thanks again for bringing the best content out there Chirag!!!

  • @suryasaini1844
    @suryasaini1844 8 місяців тому

    I want to give the mock interview. But I don't think I can pass! 😂

  • @SanjayYadav-ur4qj
    @SanjayYadav-ur4qj 8 місяців тому

    Great learning. One doubt, If we use a map then time complexity would still be O(n). Right? What do you think about my solution? I didn't use timestamp. Just used a queue.
    class LRUCache {
    constructor(size = 20) {
    this.cache = {};
    this.keys = [];
    this.size = size;
    }
    #moveToMostRecentlyUsed(key) {
    let indexOfKey = this.keys.indexOf(key);
    while (indexOfKey < this.keys.length - 1) {
    const temp = this.keys[indexOfKey];
    this.keys[indexOfKey] = this.keys[indexOfKey + 1];
    this.keys[indexOfKey + 1] = temp;
    indexOfKey++;
    }
    }
    set(key, data) {
    if (Object.hasOwn(this.cache, key)) {
    this.#moveToMostRecentlyUsed(key);
    } else {
    if (this.keys.length >= this.size) {
    const lruKey = this.keys.shift();
    delete this.cache[lruKey];
    }
    this.keys.push(key);
    this.cache[key] = data;
    }
    }
    get(key) {
    if (!Object.hasOwn(this.cache, key)) {
    return;
    }
    this.#moveToMostRecentlyUsed(key);
    return this.cache[key];
    }
    delete(key) {
    if (!Object.hasOwn(this.cache, key)) return;
    delete this.cache[key];
    this.keys.splice(this.keys.indexOf(key), 1);
    }
    }
    /************ Test Cases **************/
    const lruCache = new LRUCache((size = 3));
    // lruCache.set("1", "one");
    // lruCache.set("2", "two");
    // lruCache.set("3", "three");
    // lruCache.set("2");
    // lruCache.set("4", "four");
    // // lruCache.delete("4");
    // console.log(lruCache.keys.at(-1));
    function asyncData(key, data, time) {
    setTimeout(() => {
    lruCache.set(key, data);
    }, time);
    }
    asyncData("1", "one", 0);
    asyncData("2", "two", 0);
    asyncData("3", "three", 0);
    asyncData("4", "four", 0);
    setTimeout(() => {
    console.log(lruCache.keys.at(-1));
    console.log(lruCache.get("2"));
    console.log(lruCache.keys.at(-1));
    }, 2000);

  • @sumitkumardey3268
    @sumitkumardey3268 8 місяців тому

    Lovey @chirag. Best of Luck

  • @mirage4731
    @mirage4731 6 місяців тому

    Made an LRU Cache and Implemented it inside a memorize function (from 1st interview video) -
    class LRUCache {
    constructor(capacity) {
    this._capacity = capacity;
    this._map = new Map();
    }
    get = (key) => {
    //see if the key exists
    if (this._map.has(key)) {
    // Key exists, get the value and move it to the last index because it is the recently used
    const value = this._map.get(key);
    this._map.delete(key);
    this._map.set(key, value);
    return value;
    } else {
    // Key doesnt exists, return -1
    return -1;
    }
    };
    set = (key, value) => {
    // see if the key exists
    const prevValue = this.get(key);
    //if key exists, then move it to the right.
    if (prevValue !== -1) {
    this._map.delete(key);
    this._map.set(key, value);
    }
    // if key doesnt exists, delete the least used and insert this one.
    else {
    // Key doesnt exists, see if the capacity is reached
    if (this._map.size === this._capacity) {
    //delete the first index
    for (let [firstKey] of this._map) {
    this._map.delete(firstKey);
    break;
    }
    }
    // insert the key
    this._map.set(key, value);
    }
    };
    }
    function memoize(fn, cacheSize) {
    const cache = new LRUCache(cacheSize);
    return function (...args) {
    console.log(cache._map);
    const key = args.join();
    if (cache.get(key) !== -1) {
    console.log("Getting for cache");
    return cache.get(key);
    } else {
    const result = fn(...args);
    cache.set(key, result);
    return result;
    }
    };
    }

  • @ssmohanty153
    @ssmohanty153 8 місяців тому

    Keep the series going, really helpful

    • @engineerchirag
      @engineerchirag  8 місяців тому

      Thanks, pls help to spread this series 🙏❤️

  • @mayurwankhade7447
    @mayurwankhade7447 8 місяців тому

    Please share which tool you are using for questions? First i thought it is codepen. But it is something different. Is it made by you?