3.5 Years Experienced Best Javascript Interview | Chakde Frontend Interview EP - 02

Sdílet
Vložit
  • čas přidán 9. 05. 2024
  • Hello folks!! First of all, I am so thankful to you all for all the love and support you have given to the first episode of "CHAKDE INTERVIEWS" and as promised I am rolling out another episode of "CHAKDE INTERVIEWS" on the most popular Javascript questions in interviews. Check it out and share it with your friend.
    Connect to learn & grow together in our career❤️:
    ✅ Linkedin: / engineerchirag
    ✅ Twitter: / engineerchirag
    ✅ Instagram: / engineerchirag
    Music track: Wanderer by walen
    Source: freetouse.com/music
    No Copyright Background Music
    #interview #react #javascript #chakdeinterviews #frontenddevelopment #mockinterview

Komentáře • 116

  • @himanshukhosla
    @himanshukhosla Před měsícem +21

    Thank you very much for inviting me for this mock interview round chirag sir. Really loved the thrill of mock interview of Microsoft 😀

  • @anandagar2k
    @anandagar2k Před měsícem +3

    For the first problem we can define all these methods in the prototype object, declaring inside calculator will create copy of these methods in each object which is over burden to maintain.
    function compute(){
    this.amount=0;
    }
    compute.prototype.lacs = function(val){
    this.amount = this.amount+val;
    return this;
    }
    compute.prototype.value = function(){
    return this.amount;
    };

  • @sumitkumardey3268
    @sumitkumardey3268 Před měsícem +3

    @chirag once again it's tricky , unique and knowledgeable questions from your side. Thanks , Please keep posting.

    • @engineerchirag
      @engineerchirag  Před měsícem

      Thank you, I will. Keep watching, keep sharing ❤️

  • @sanketjaiswal76
    @sanketjaiswal76 Před měsícem +1

    Absolutely one of the great interview i watched , i am learning a Lot from this interviews , whcih will definatly help me in my upcoming interviews.Thanks you so much.

    • @engineerchirag
      @engineerchirag  Před měsícem +1

      Awesome ❤️. Do share in your network as well. 🙏

  • @madhanrock5390
    @madhanrock5390 Před měsícem +2

    Good interview Again, Learning new things ✌
    Thanks Chirag for investing your time in conducting mock interviews, Immensely helpful ❤

  • @smrutisagarpattanaik1506
    @smrutisagarpattanaik1506 Před měsícem +5

    For the first problem, one can use recursion and closure to write a solution like below:-
    function computeAmount(value, total = 0) {
    if (value) {
    total = total + value;
    }
    return {
    lacs: function (value) {
    return computeAmount(value * 100000, total);
    },
    crore: function (value) {
    return computeAmount(value * 10000000, total);
    },
    thousand: function (value) {
    return computeAmount(value * 1000, total);
    },
    value: function () {
    return total;
    }
    }
    }

    • @rishabhmehta6204
      @rishabhmehta6204 Před měsícem

      but issue is you are passing parameter in actual question we are required not pass any args to computeAmount.

    • @smrutisagarpattanaik1506
      @smrutisagarpattanaik1506 Před měsícem

      I have mentioned parameters in the function. One does not have to pass argument.That is why null/undefined check is present inside the function. If one runs the function according to the syntax shown in video it should work.

    • @omkarjagtap2212
      @omkarjagtap2212 Před 23 dny +1

      recursion is not optimized way to solve this problem it will consumed memory stack better go with factory function

    • @smrutisagarpattanaik1506
      @smrutisagarpattanaik1506 Před 23 dny

      ​​@@omkarjagtap2212 Yes recursion will consume space on call stack. But in the solution it will be one level deep. The reason is I have kept the data and arithmetic calculations in the parent function. But that can also be fixed. Like below solution:-
      function computeAmount() {
      let total = 0;
      let obj = {
      lacs: function (value) {
      total = total + (value * 100000);
      return obj;
      },
      crore: function (value) {
      total = total + value * 10000000;
      return obj;
      },
      thousand: function (value) {
      total = total + value * 1000;
      return obj;
      },
      value: function () {
      return total;
      }
      }
      return obj;
      }
      This will still work.
      JavaScript closure concept is all one needs to solve the problem.

  • @chandrasekharmadavaram-nq9dq

    one the great interview, learnt new things, please keep do more videos

  • @ankushladani496
    @ankushladani496 Před měsícem

    Thanks Chirag Sir for this awesome series...😊❤

  • @mobilegaming9071
    @mobilegaming9071 Před měsícem

    Getting excited

    • @engineerchirag
      @engineerchirag  Před měsícem +1

      Keep watching, keep sharing. Try to attempt questions by yourself 🚀

    • @mobilegaming9071
      @mobilegaming9071 Před měsícem

      @@engineerchirag yes sir I just pause the video and try to solve the problem .

  • @prakharomer7745
    @prakharomer7745 Před měsícem

    It was totally awesome , super tricky questions.

  • @harshitagupta8641
    @harshitagupta8641 Před měsícem

    Thank you chirag sir for this amazing video ❤.lot of things I have learned from this video.
    Sir Plz keep posting this type of video🙏

  • @sohrabkhan8367
    @sohrabkhan8367 Před měsícem

    It was very good interview. Questions are very relatable and the approach to solving question is really awesome. Worth to watch the whole video.

  • @SCRIPTSAG
    @SCRIPTSAG Před měsícem +3

    First probkme based on currying second in this and third was related to getter setter great 👍

  • @amandubey4412
    @amandubey4412 Před měsícem

    excellent work

  • @BulbDrama
    @BulbDrama Před měsícem

    Nice one

  • @srihariramakrishnan3935
    @srihariramakrishnan3935 Před měsícem +1

    @engineerchirag I doubt if there is any actual model state.value. Because the getter, setter actually returns and sets input.value. Printing the state value within those methods or anywhere else can help understand it better. I am yet to try this out myself. Intriguing question though! Thanks for it.

  • @omkarjagtap2212
    @omkarjagtap2212 Před 23 dny +1

    my answer for 1st problem using factory function
    const createComputeFunctions=()=>{
    let totalAmount=0
    return {
    thousand:function(amount){
    totalAmount+=amount*1000
    return this
    },
    lacs:function(amount){
    totalAmount+=amount*100000
    return this
    },
    crore:function(amount){
    totalAmount+=amount*10000000
    return this
    },
    value:function(){
    return totalAmount
    }
    }
    }
    const compute =createComputeFunctions()
    const result=compute.lacs(15).crore(5).crore(2).lacs(20).thousand(45).crore(7).value();
    console.log(result)

  • @Mr.Zeus11
    @Mr.Zeus11 Před měsícem

    Question 2: FYI those who couldn't get why maximum call stack size exceeded
    In order to access the state.value it has to call "get()" function again => inside get function it's returning "state.value" so basically it's creating N number of "execution context", Each invocation adds a new execution context continues indefinitely.
    Start
    |
    v
    Access state.value
    |
    v
    Invoke getter function
    |
    v
    Return state.value
    |
    v
    Access state.value (again)
    |
    v
    Invoke getter function (again)
    |
    v
    Return state.value (again)
    |
    v
    Access state.value (yet again)
    | |
    | | (This loop continues indefinitely)
    | |
    v v

  • @mkunboxing
    @mkunboxing Před měsícem

    awesome

  • @karthiksundaram544
    @karthiksundaram544 Před měsícem

  • @anyoneola456
    @anyoneola456 Před měsícem

    Amazing Mock Interview, best for Self Practice and become familiar to such type of questions, is there any particular website or something where we can practice this questions?
    BTW amazing video, the community needs more such videos.....loved the work and efforts you have put to make this things available on CZcams. Keep It Up.👍👏

    • @engineerchirag
      @engineerchirag  Před měsícem +1

      Every Saturday a new video of "Chakde Frontend Interview" will be live - Stay tuned. Keep growing, keep sharing 🚀

  • @maheshshirate2834
    @maheshshirate2834 Před měsícem

    As student how is learning web dev,
    I learnt a lot, awesome interview ❤
    Sir, Pls don't stop this seris

    • @engineerchirag
      @engineerchirag  Před měsícem +1

      Thank you, I will. Keep learning, keep sharing 🚀

  • @rishabhmehta6204
    @rishabhmehta6204 Před měsícem

    My Approach for first question
    const calamount={
    val:0,
    lakhs:function(a){
    this.val+=a;
    return this;
    },
    crore:function(a){
    this.val+=a
    return this;
    },
    value:function(){
    return this.val;
    }
    }
    function calculateamount(){
    return calamount
    }
    console.log(calculateamount().lakhs(57).crore(567).lakhs(566).value())

  • @rikki7663
    @rikki7663 Před 17 dny +1

    day 51 of asking: from where we can prepare these types of questions... question quality is superb

  • @FaizanPinjari
    @FaizanPinjari Před měsícem

    If people thinking what editor it is, it's technical assessment platform codility.

  • @nimishgs3259
    @nimishgs3259 Před 13 dny

    First Q:
    function computeAmount () {
    this.value = 0
    const context = {
    lacs: lacs.bind(this),
    crore: crore.bind(this),
    thousands: thousands.bind(this),
    value: value.bind(this)
    }
    function lacs (number){
    const numberInLacs = 100000*number
    this.value += numberInLacs
    return context
    }
    function crore (number){
    const numberInCrores = 10000000*number
    this.value += numberInCrores
    return context
    }
    function thousands (number){
    const numberInThousands = 1000*number
    this.value += numberInThousands
    return context
    }
    function value() {
    return this.value
    }
    return context
    }
    console.log(computeAmount().lacs(15).thousands(20).value())

  • @yashsolanki069
    @yashsolanki069 Před měsícem

    Extremely helpful for all of us.
    Thanks chirag for this series.
    Could you please share, What is the code editor being used here?

    • @engineerchirag
      @engineerchirag  Před měsícem

      Thanks Yash for feedback. DM me on LinkedIn for details 😊

  • @gunjanvyas695
    @gunjanvyas695 Před měsícem +1

    Thank you so much!
    Approaching this as if it's my interview, below is my solution
    Q1
    Solution: First approach which came to my mind. (passed!)
    const computeAmount = () => {
    let totalAmount = 0;
    let ans = {
    thousand : (a) => {totalAmount+=a*1000; return ans},
    lacs : (a) => {totalAmount+=a*100000; return ans},
    crore: (a) => {totalAmount+=a*1000000; return ans},
    value:()=> totalAmount
    }
    return ans;
    }
    console.log(computeAmount().lacs(1).lacs(1).thousand(2).value());
    Q2
    Solution: "hello world, Hello" it wrong, need to improve on it on js!
    Q3
    Solution:
    const input = document.createElement("input");
    document.body.appendChild(input);
    const state = { value : "Hi" }
    function onChangeFunc(e){
    console.log("change happened and value is", e.target.value);
    let value = e.target.value;
    state.value = value;
    }
    function model(state, input){
    input.addEventListener("change", (e) => {onChangeFunc(e)} );
    /* need to thing how to add state obj change logic */
    }
    model(state, input);
    console.log(input.value);// Hi
    state.value = "dev"
    console.log(input.value)//dev
    input.value = "engineering chirag"
    input.dispatchEvent(new Event("change"));
    console.log(state.value);
    Have given my raw solutions
    Self Review: Need to improve more on JS this keyword, binding part and keep on improving.
    Thank you Chirag!

  • @user-rm4np9pw2h
    @user-rm4np9pw2h Před měsícem

    in input we already have `change` event listener so why we dispatch again 🤔

  • @arunms6701
    @arunms6701 Před měsícem

    Ans: 1st Problem
    function computeTheAmount() {
    let totalAmount = 0;
    const operations = {
    lacs(amount) {
    totalAmount += amount * 100000;
    return this
    },
    crore(amount) {
    totalAmount += amount * 10000000;
    return this
    },
    thounsands(amount) {
    totalAmount += amount * 1000;
    return this
    },
    value() {
    return totalAmount
    }
    }
    return operations
    }

  • @thechallengers6424
    @thechallengers6424 Před 28 dny

    Which real world project have used atleast one of these deep concepts of js???

  • @manimk9922
    @manimk9922 Před 11 dny

    can you share that link where himanshu referred..?

  • @nitinakuch4973
    @nitinakuch4973 Před měsícem

    Where I can practice such JavaScript questions?

  • @PicardoPlayer
    @PicardoPlayer Před měsícem +1

    Just watched half part so far, really an amazing interview.
    I think there some typo, He has 5 years of experience not 3.5 please correct

    • @engineerchirag
      @engineerchirag  Před měsícem

      Thanks for highlighting. It will rectified soon!

  •  Před měsícem

    Question 1 - function computeAmount(){
    let totalAmount =0;
    const returnObj = {
    lacs:function(amount){
    totalAmount+= amount*100000;
    return returnObj
    },
    crore: function(amount){
    totalAmount+= amount*10000000;
    return returnObj;
    },
    thousands: function(amount){
    totalAmount+= amount*1000;
    return returnObj
    },
    value:()=> totalAmount
    }
    return returnObj
    }

  • @arpitgarg6459
    @arpitgarg6459 Před měsícem

    My solution for first problem:
    function computeAmount(args){
    let total;
    if(!args)
    total = 0
    else{
    total = args
    }
    //console.log('fi', this)
    return {
    thousand: (val) => {
    total = total + val*1000
    return computeAmount(total)
    },
    lacs: (val) => {
    total = total + val*100000
    return computeAmount(total)
    },
    crore: (val) => {
    total = total + val*10000000
    return computeAmount(total)
    },
    value: () => total
    }
    }

  • @sameekshagupta9518
    @sameekshagupta9518 Před měsícem

    Can you also do some React interview questions as well ?

    • @engineerchirag
      @engineerchirag  Před měsícem

      Yes, upcoming interview is on ReactJs. Stay tuned 🚀

  • @sourabhsingh4449
    @sourabhsingh4449 Před měsícem

    No need to do fancy thing in first problem. Returning this will work because instance of function is created when it is called first. I don't know what is the confusion here and it is complicating a simple problem
    function computeAmount() {
    totalAmount = 0;
    this.lacs = function(numLacs) {
    totalAmount += numLacs*100000
    return this;
    }
    this.crore = function(numCrores) {
    totalAmount += numCrores*10000000
    return this;
    }
    this.value = function() {
    return totalAmount;
    }
    return this;
    }
    console.log(computeAmount().lacs(15).crore(2).value());

  • @vk19148
    @vk19148 Před měsícem +1

    Please provide codes of all the Questions asked so that we can also try it before watching the solution.

  • @namanupadhyay2589
    @namanupadhyay2589 Před měsícem

    Can we get a separate video for 1 st questions solution

  • @abhijeet3844
    @abhijeet3844 Před měsícem

    I appreciate the efforts. But Nobody uses pure venila javascript now a days. This is just to test the knowledge i guess. But You could have tested in a better way. This is for sure not for 3 years experienced candidate. As it was mock , agreed but real time if you ask most of them will fail to answer. felt bit difficult interview . All the best

  • @himanshumishra3425
    @himanshumishra3425 Před měsícem

    function compute(){
    return {
    amount:0,
    lacs:function (params){
    this.amount += params * 100000;
    return this;
    },
    crore: function (params){
    this.amount += params * 10000000;
    return this;
    },
    thousand :function (params){
    this.amount += params * 1000;
    return this
    },

    value : function (){
    return this.amount;
    }
    };
    }
    is this approach wrong ?

  • @trialaccount2244
    @trialaccount2244 Před měsícem

    From title I thought 3.5 years of experience 🙂

    • @engineerchirag
      @engineerchirag  Před měsícem

      Yeah, interview level is 3.5+ experience only. Will get it rectified soon!

  • @karthiksundaram544
    @karthiksundaram544 Před měsícem

    Hi chirag what is latest version of javascript

  • @gagansuneja7029
    @gagansuneja7029 Před měsícem

    Does MS take all hiring rounds in a single day only?

  • @DevAditya
    @DevAditya Před měsícem

    Which editor is it?

  • @vk19148
    @vk19148 Před měsícem +1

    In major frontend interviews these Expectations and Competencies are checked:
    1. Code quality (modular and readable).
    2. Working Code (separation of concerns, production ready code).
    3. Code should easily accommodate new requirements with minimal changes.
    4. Core business Logic.
    5. Low Level Design (Extensibility).
    Sirf Code likha aur ek Acha Scalable Code likhne me jameen asmaan ka fark hota hai...How to write such code. So Please make a detailed video on it bhaiya.

  • @mdsalman7707
    @mdsalman7707 Před měsícem

    Does actual interview also go like this?

    • @shubhanshusahuu
      @shubhanshusahuu Před měsícem

      Obviously not

    • @engineerchirag
      @engineerchirag  Před měsícem

      Why so? Why did you feel like that?

    • @shubhanshusahuu
      @shubhanshusahuu Před měsícem

      @@engineerchirag in actual interview, they don't support or give you hint like you gave

    • @sanketjaiswal76
      @sanketjaiswal76 Před měsícem +1

      @@shubhanshusahuu it depends if they know u are on right track or not , if u showing them progress then they will help u sometime.

    • @engineerchirag
      @engineerchirag  Před měsícem +2

      Depends on the interviewer. The intent of the interview is not to reject, but to get the best out of the candidates 😊.
      Sometimes you have to ask for hints and suggestions from the interviewer 😄

  • @65muralikumarj
    @65muralikumarj Před měsícem +2

    This Platform name???

  • @imkir4n
    @imkir4n Před měsícem

    which is this online editor?

  • @premmokashe4896
    @premmokashe4896 Před měsícem

    is this solution correct
    function CompoundAmount(){
    return{
    result:0,
    lacs:function(v){
    this.result+=Number(`${v}00000`)
    return this
    },
    core:function(val){
    this.result+=Number(`${val}0000000`)
    return this
    },
    thousand:function(th){
    this.result+=Number(`${th}000`)
    return this
    },
    values:function(){
    return this.result
    }
    }
    }
    console.log(CompoundAmount().lacs(5).core(1).thousand(1).lacs(2).values())

  • @nayansinghal5157
    @nayansinghal5157 Před měsícem

    QUES 1 :-
    function computeAmount() {
    const amount = {
    totalAmount: 0,
    lacs: function (number) {
    this.totalAmount += number * 100000;
    return this;
    },
    crore: function (number) {
    this.totalAmount += number * 10000000;
    return this;
    },
    thousand: function (number) {
    this.totalAmount += number * 1000;
    return this;
    },
    value: function () {
    return this.totalAmount;
    },
    };
    return amount;
    }
    console.log(computeAmount().lacs(15).crore(5).crore(2).lacs(20).thousand(45).crore(7).value());

  • @shagunpreetsingh7105
    @shagunpreetsingh7105 Před měsícem

    My Solution to first problem:
    function computeAmount(){
    return {
    inLac: 0,
    inCrore: 0,
    inThousand: 0,
    thousand: function(value) {
    if(value) {
    this.inThousand = this.inThousand + Number(value) * 100000;
    }
    return this;
    },
    lac: function(value) {
    if(value) {
    this.inLac = this.inLac + Number(value) * 100000;
    }
    return this;
    },
    crore: function(value) {
    if(value) {
    this.inCrore = this.inCrore + Number(value) * 10000000;
    }
    return this;
    },
    value: function(){
    return (this.inCrore + this.inLac + this.inThousand).toLocaleString('hi');
    }
    }
    }
    I am not sure why can't we simply return an object like above from computeAmount function how does factory design pattern help here @engineerchirag please help

  • @mayurwankhade7447
    @mayurwankhade7447 Před měsícem

    My solution to the first question after watching the video till 11.55, without googling
    function computeAmount() {
    return {
    totalAmount: 0,
    crore(crore) {
    this.totalAmount += crore * 10000000;
    return this;
    },
    lacs(lacs) {
    this.totalAmount += lacs * 100000;
    return this;
    },
    thousand(thousand) {
    this.totalAmount += thousand * 1000;
    return this;
    },
    value() {
    return this.totalAmount;
    },
    };
    }
    console.log(
    computeAmount()
    .lacs(15)
    .crore(5)
    .crore(2)
    .lacs(20)
    .thousand(45)
    .crore(7)
    .value()
    );

  • @AnkitTyagi-co8rs
    @AnkitTyagi-co8rs Před měsícem

    class calculate {
    constructor(){
    this.value=0;
    }
    thousand(amount){
    this.value += amount *1000;
    return this;
    }
    lacs(amount){
    this.value +=amount *100000;
    return this;
    }
    crore(amount){
    this.value += amount *10000000;
    return this;
    }
    final(){
    return this.value;
    }
    }
    const computeAmount = new calculate();
    console.log(computeAmount.lacs(15).crore(5).crore(2).lacs(20).thousand(45).crore(7).final())

  • @durgeshgupta6647
    @durgeshgupta6647 Před měsícem

    hi, this is my solution
    function foo(){
    let total=0
    return {
    lacs(num){
    total=total+num*100000
    return this
    },
    crore(num){
    total=total+num*10000000
    return this
    },
    thousand(num){
    total=total+num*1000
    return this
    },
    value(){
    return total
    }
    }
    }
    console.log(foo().lacs(15).crore(5).crore(2).lacs(20).thousand(45).crore(7).value())

  • @hassamsaeed4839
    @hassamsaeed4839 Před měsícem

    A great interview. I itself learned alot of things ❤🫡

  • @childrenWithGod-xn2rb

    obj.helloWorld() ,,,,, we will get => hello world hello in this way also

  • @karthiksundaram544
    @karthiksundaram544 Před měsícem