setTimeout + Closures Interview Question 🔥 | Namaste 🙏 JavaScript Ep. 11

Поделиться
HTML-код
  • Опубликовано: 4 янв 2025

Комментарии •

  • @deepakdesai5662
    @deepakdesai5662 4 года назад +136

    3 years of coding in JavaScript and now i know that i don't know javascript properly 😂. Thank you bro tune meri aankhe khol di🤩

  • @abhinav227
    @abhinav227 4 года назад +358

    "Time, tide and JS wait for none" - Want this on my T-shirt 😀

  • @sravankumar-hv3lp
    @sravankumar-hv3lp 4 года назад +76

    Your passion to teach is awesome. We can clearly see it in your eyes you want to help others to grow rather than earning money by sharing your knowledge. ❤️

    • @akshaymarch7
      @akshaymarch7  4 года назад +12

      Thank you brother ❤️

    • @saicharan2159
      @saicharan2159 Год назад

      @@akshaymarch7 Love you Bro for this knowledge sharing ❤

  • @faizanmuhammad802
    @faizanmuhammad802 11 месяцев назад +4

    Awesome!
    A small quiz:
    "closures keep reference not the actual value" (repeat it 10 times) and guess the output of below snippet
    for(var i=1; i {
    console.log(i);
    i = i + 1;
    }, i*1000);
    }
    console.log("outside: ", i)
    if( i < 10 ) i = 10;

    • @viswesh3939
      @viswesh3939 10 месяцев назад +1

      outside:6 // The for loop get executed before the setTimeout func
      10
      11
      12
      13
      14
      //after the for loop execution now the " i " value become 10 and the value in settimeout has the value 10 beacuse of lexical scope .

  • @Aman-gw7ro
    @Aman-gw7ro 3 года назад +3

    got that answer of setTimout running in loop before you printed on console. Very cool example of closures. Seriously man best playlist on JS on youtube.

  • @WestcolColombia_
    @WestcolColombia_ 2 года назад +3

    Thanks!

    • @akshaymarch7
      @akshaymarch7  2 года назад +3

      Thank you so much for supporting my channel, EL PODEROSO. This means a lot. ❤️

    • @WestcolColombia_
      @WestcolColombia_ 2 года назад +4

      @@akshaymarch7 My pleasure Sr, you know something, I'm watching you from Colombia, just for you to have an Idea how you have been spreaded your knowledge around the world, Colombia is a country where the mother tongue is Spanish, I could learn some English so know I am able to check all your videos and understand you brother, thank you so much 🏆🌹

    • @WestcolColombia_
      @WestcolColombia_ 2 года назад +2

      Spreading*

  • @rohanmangale5990
    @rohanmangale5990 4 года назад +5

    Man...I was searching the whole internet to understand this problem from months none i could understand. And today you made me understand it in just 17 minutes hats off to u man....u are a gem

  • @sushantthakur413
    @sushantthakur413 4 года назад +4

    Great job Akshay, I am myself a javascript developer and love JavaScript, u really inspiring, doing a grt job not only in educating them but explaining them these tough concepts so that even kindergarten child can understand, really amazed to see your passion . God Bless you.

  • @ravalravi882
    @ravalravi882 4 года назад +3

    I always watch traversy media, web dev simplifed , dev ed and all (and i always think that no one is that good enough for javascript from india)..
    but you prove me wrong .. Thank you bro keep making video like this..

  • @nikhil6842
    @nikhil6842 4 года назад +81

    Interviewer asked me exactly this question, but i didn't know.
    But thanks to the knowlege i got from your other videos, i was able to convince them to hire me.
    Thank you Akshay, for everything you've done and everything you'll be doing in the future.
    World needs more people like you, who not only are successful themselves but also guiding others and making their journey a lot easier.

    • @akshaymarch7
      @akshaymarch7  4 года назад +6

      ❤️

    • @merlinwarage
      @merlinwarage 2 года назад

      Why would you go to an interview without reading a book about the subject? All of these things are almost in every JS book.

    • @HominisLupis
      @HominisLupis 2 года назад +1

      @@merlinwarage lol

    • @harshshukla_5544
      @harshshukla_5544 2 года назад +1

      @@merlinwarage can you please recommend me a good js book

  • @rishabhshukla5199
    @rishabhshukla5199 3 года назад +6

    I did exact same mistake what he expected and got output as all 6.
    What an amazing concept you taught.
    You expressions while teaching 😍.

  • @animeshsharma9932
    @animeshsharma9932 3 года назад +1

    I am binge watching NAMASTE JAVASCRIPT and look forward to do the same next weekend also. The best JS course in the world right now.

  • @akshaymarch7
    @akshaymarch7  4 года назад +18

    Please watch this video with UTMOST ATTENTION. Listen to each line very carefully. 🙏
    Next Video: CRAZY JS Interview 🤯 - ruclips.net/video/t1nFAMws5FI/видео.html
    Also, do let me know will you be able to answer this question in the interview now? ✌🏽

    • @akshaymarch7
      @akshaymarch7  4 года назад +12

      @revking I don't have a full plan myself. 😅JavaScript is huge, very huge, very very huge. I'm very confused, what to cover and what not to.
      If I start covering everything then this series will become a ` while(true){ makeVideo(); } ` 😅
      But I'll definitely think about important topics and try to come up with Long Term Vision and a roadmap for Namaste JavaScript. 👍
      Thank you so much for your comment, brother. ❤️

    • @EeshaKPopDanceCovers
      @EeshaKPopDanceCovers 4 года назад +2

      Akshay 'this' keyword is very confusing in js..🙄🙄

    • @vinothkumarv9722
      @vinothkumarv9722 4 года назад +2

      Exactly : ) finally the music is awesome.....

    • @vinothkumarv9722
      @vinothkumarv9722 4 года назад

      @@EeshaKPopDanceCovers even me also

    • @vinothkumarv9722
      @vinothkumarv9722 4 года назад

      @@akshaymarch7 this line If I start covering everything then this series will become a ` while(true){ makeVideo(); } ` >>> super bro :) love you :) ❤️❤️❤️❤️❤️❤️❤️

  • @sofiaborovskaia3714
    @sofiaborovskaia3714 Год назад +2

    After reading many articles and watching other videos about closures & loops, I finally understand why we experience this behaviour. The key was to understand that the async function stores the reference and not the value! Thank you, and I love your style of teaching.

  • @AmanMishra-pn3cq
    @AmanMishra-pn3cq 2 года назад +156

    Things learned:
    1. setTimeout stores the function in a different place and attached a timer to it, when the timer is finished it rejoins the call stack and executed.
    2. Without closure the var reference gives the latest value as it does not retain the original value but rather has the reference so any update in value after timeout will be shown.
    3. If we use let/const because they have block scope, every time a new copy of variable is attached, thus this can be done without closure.

    • @kushagrashrivastava2846
      @kushagrashrivastava2846 2 года назад +4

      6:57
      function y(){
      for(var i=1;i

    • @chriskatanic8080
      @chriskatanic8080 2 года назад +14

      @Kushagra Shrivastava All of the timers start at the same time, not one after the other. So the first logs to the console after 1 second, the second after 2 seconds, the third after 3 seconds, etc. This makes them print one second part from each other.

    • @kushagrashrivastava2846
      @kushagrashrivastava2846 2 года назад +1

      @@chriskatanic8080 thank you so much

    • @stephen2824
      @stephen2824 2 года назад +6

      If we use const, you will find that his example prints 1 once, then throws an error. It is a constant and can not be changed after that, i.e. it is not a changeable “variable” in a true sense, so it is a misnomer.

    • @SaiKumar-fi1ll
      @SaiKumar-fi1ll 2 года назад

      @@stephen2824 ya true

  • @atif5752
    @atif5752 4 года назад +6

    This is most literally the most simplified explanation on closure and this question over the internet. As usual just amazing and thanks a ton, man

  • @rupalisingh4804
    @rupalisingh4804 3 года назад +5

    Every time you smile, I smile..that too while learning javascript😂. What a great teacher❤

  • @shikharjoshi6349
    @shikharjoshi6349 4 года назад +27

    Bhaiya ye video dekhne k baad jiski job lagegi vo itna kush ni hoga jitna aap thumbnail mein hore 😅. ❤️

  • @bhautikmavani4416
    @bhautikmavani4416 4 года назад +14

    Your namaste javascript series is like web series. I know all JS concept still i am watching your video. it's really fun. keep on #JS#GURU

  • @SalmanMalik-w2x
    @SalmanMalik-w2x 5 месяцев назад

    i tried understanding this concept by watching it several times in this week but finally after watching it now, i hope i can say understood the 80% of concept in this video. Btw extremely Thank full to you you created content of this high notch quality.

  • @ashwini.r.
    @ashwini.r. 3 года назад +3

    I like the way how you added memes/gif in between... put some smile while we're concentrating to learn concepts. Thank you for making us understanding JS.

  • @EmpatheticPriya
    @EmpatheticPriya 2 года назад

    Its actaully best quotes time,tide and JavaScript wait for none.😂 now I totally understand setTimeout because of your teaching is awesome. lots of respect for you

  • @farazhusain925
    @farazhusain925 3 года назад +93

    I've completed my master's in mechanical enginnering, and after that, I planned to switch my career in the IT industry.
    Yesterday, I cracked the first round of interviews for the position of front-end developer.
    All the questions on JS were from your videos, and I can bet that the interviewer has also watched your Namaste Javascript series.

    • @manojpatil2457
      @manojpatil2457 3 года назад +1

      What's the update?
      Have you joined?

    • @farazhusain925
      @farazhusain925 3 года назад +2

      @@manojpatil2457 I'll join from 6th September. I've cleared one more interview for the position of a front-end developer. Thanks to Akshay once again.

    • @manojpatil2457
      @manojpatil2457 3 года назад +2

      @@farazhusain925
      Wonderful .
      Which portal you are using for applying?

    • @ritikraj2629
      @ritikraj2629 3 года назад +2

      is react also asked in that

    • @farazhusain925
      @farazhusain925 3 года назад +1

      @@ritikraj2629 Yes

  • @WestcolColombia_
    @WestcolColombia_ 2 года назад +1

    I will remember closures for ever, yeahhhhh!!!!! 🏆🏆❤️❤️❤️❤️❤️❤️❤️❤️❤️

  • @aroundtheglobeSwati
    @aroundtheglobeSwati 3 года назад +15

    Some tough concepts well handled and it's always so fun to watch as the way you keep the viewers glued to the video. I have never used JS before but now I feel that I should start doing some programs related to it for practice. I never got the idea of craziness of viewers towards this series , now I do realize their excitement for "Namaste JS". Kudos!!

  • @ShantanuMishra-p8x
    @ShantanuMishra-p8x 2 месяца назад

    Great content bhaiya really enjoying watching this playlist . Tried this problem with a different approach and it worked :)
    function timer()
    {
    count=0
    for(var i=1;i{
    count+=1;
    console.log(count);
    },i*1000)
    }
    }
    timer()

  • @shubhamsaurabh2631
    @shubhamsaurabh2631 3 года назад +4

    Bhai ek number videos hai apke. I have not watched this full video yet, currently on 05:03 minutes. I just decided to try to take this up as a coding challenge and got the desired result. You have explained the concept of closure so damn well. More power to you man.

  • @vinayaknarayankar7809
    @vinayaknarayankar7809 Год назад

    Bhai salute. I was asked the same question in an interview when I was a fresher. Tab answer pata nahi tha aur practice se maine let use kiya tha. Interviewer asked why use let and could it done by using var. Tab kuch basic understanding nahi tha so I couldn't answer. Watching this video to prepare for new interviews after 2 years experience in field, I instantly knew what to do when you asked how to do it using var coz I remembered your previous videos lessons. Lots of love bro. Thanks for making me fall in love with JavaScript❤❤

  • @killadasatyaaditya2396
    @killadasatyaaditya2396 2 года назад +18

    Do note that the timer can expire before the whole loop gets executed when you change the stopping condition from i

    • @solowolf5304
      @solowolf5304 2 года назад +1

      can anyone plz help me why the suggested solution in video of using let (a block scope variable) variable isn't working here :
      function z ( ) {
      let a = 10 ;
      a++ ;
      setTimeout( () => {
      console.log(`from setTimeout : ${a}`) ;
      }, 600);
      console.log(`from last console log : ${++a}`) ;
      }
      z() ;
      my output is :
      from last console log : 12
      from setTimeout : 12
      expected output :
      from last console log : 12
      from setTimeout : 11

    • @bandishkumar1990
      @bandishkumar1990 2 года назад

      @@solowolf5304 function z ( ) {
      let a = 10 ;
      a++ ;
      function local(x) {
      setTimeout( () => {
      console.log(`from setTimeout : ${x}`) ;
      }, 600);
      }
      local(a)
      console.log(`from last console log : ${++a}`) ;
      }
      z() ;

    • @Test-wi3mj
      @Test-wi3mj 2 года назад

      @@solowolf5304 function z ( ) {
      let a = 10 ;
      let b = a++ ;
      b++
      setTimeout( () => {
      console.log(`from setTimeout : ${b}`) ;
      }, 600);
      console.log(`from last console log : ${++a}`) ;
      }
      z()

    • @akshayghogare4563
      @akshayghogare4563 2 года назад

      @@solowolf5304 please carefully look for....++I and I++ .

    • @ManishKumar-oe5bb
      @ManishKumar-oe5bb 2 года назад +2

      @@solowolf5304 inside setTimeout the value of a is also 12 because the time it's going to log a value, it's already updated to 12 . function inside setTimeout remembers the a's reference not value. So at a's memory the value is updated to 12. So it is printing 12.

  • @ganeshbardade6464
    @ganeshbardade6464 4 года назад

    Thank you brother 🙏. Just few days ago, this question asked by interviewer 💻. and I gave same what same answer like "It will increment variable i after some m/sec". That time she told me I was wrong. But watching your video💻, now I 💡clear everything. and also now I understand "var and let" can make such change. Thank you again 😇✌️👏

  • @tanyagoel9140
    @tanyagoel9140 4 года назад +595

    Sir, Please make series on React as well. Will be highly appreciated :)

    • @srujanashankar9517
      @srujanashankar9517 4 года назад +7

      Yes React please

    • @aimanzaheb1475
      @aimanzaheb1475 4 года назад +8

      And also make it relative with namaste js series.

    • @roothacks6864
      @roothacks6864 4 года назад +7

      Yes we need a series on react just like this it will be very helpful

    • @sahilarora7186
      @sahilarora7186 4 года назад +1

      Exactly. akashay bro. Waiting for it.

    • @Nikkupikku123
      @Nikkupikku123 3 года назад +7

      yes we need "Howdy React!" :P

  • @sarthakghosh4690
    @sarthakghosh4690 Год назад +1

    I was asked this question at an interview with DeliveryHero. Brilliant!

    • @murali-krishnan
      @murali-krishnan 11 месяцев назад

      Great man, did you crack the job? How many rounds of interviews did you go through and what were those rounds?

  • @sudortd
    @sudortd 2 года назад +3

    This is the kind of teacher I have been waiting all life.

  • @rahulkulkarni9653
    @rahulkulkarni9653 4 года назад

    recently i have an interview with HCL and the have asked the same question .... i have answered like you ha ha ha they have very much impressed even interviewer doesn't know in-depth thanks buddy you are great ........ please continue this

  • @haxiyi
    @haxiyi 4 года назад +12

    6:10 😂 SAVAGE 🔥
    "That's how it is not.."

  • @laurraileanu8374
    @laurraileanu8374 3 года назад +11

    on the 11th clip in a row, just trying to remember this for an interview. great content man, your energy is actually making me want to write some functions and just play with them, I have never seen easier explanations of the execution context, hoisting and closures. Kuddos man

    • @CharanGs-t4i
      @CharanGs-t4i Год назад

      hey , did you clear the interview ? was the questions asked were covered in this playlist ?

    • @known878
      @known878 9 месяцев назад

      i think he is dead....he might have committed sucide bcoz he is not replying
      @@CharanGs-t4i

  • @kartikshrivastava1500
    @kartikshrivastava1500 2 года назад +1

    I always thought that only C++ template spaghetti has something mind bending to offer, but now I have a purpose to learn JS. Thank you Akshay bhai!

  • @priyeshjammula854
    @priyeshjammula854 3 года назад +4

    The whole Namaste JS series feels like dope and the meme at the end of this video just mimics that!!! Hats off to you Akshay.

  • @deepakvincent
    @deepakvincent 4 года назад +1

    Amazing bro.. I have been working with JS for 4 years.. Finally I understood what closure was. Thank you

    • @akshaymarch7
      @akshaymarch7  4 года назад

      Not yet, next video will cover more about closures. 🔥

  • @aijaz4441
    @aijaz4441 4 года назад +6

    Javascript is tricky but your explanation is so crisp and clear that even a non JS developer can understand it.

  • @siddhartharoy179
    @siddhartharoy179 3 года назад

    I got so excited when I saw this because I stumbled upon this exact problem some time back while I was working on a sorting visualizer project and couldn't figure out what was wrong with my code for days. Ultimately someone advised me to use async and await but now i fully understand why that didn't work.

  • @arunvishwakarma2779
    @arunvishwakarma2779 3 года назад +27

    The problem with Akshay is that, He has positive radiating energy. You can't stop watching his videos :D

  • @Davyhatesu
    @Davyhatesu 2 года назад

    I have never laughed at a tutorial till now! Keep the humor up in your videos brother!

  • @ashishpandeyone
    @ashishpandeyone 4 года назад +6

    Akshay, lovely explanation, awesome outro music. Now Liggi is going to be on a loop today. 😂

  • @shubhamsonawane967
    @shubhamsonawane967 3 года назад

    after watching namste JS i am in love with JS, and "time tide and JS waits for none " it was actually a good joke and nice Quote by you .

  • @anonymous........
    @anonymous........ 4 месяца назад +3

    15:52 , One common approach to achieve this with var is by using an Immediately Invoked Function Expression (IIFE) inside the loop.
    Here is the code:
    function x() {
    for(var i = 1; i

    • @Hellboy_eeuiii
      @Hellboy_eeuiii 2 месяца назад +1

      Ya this is iife making allocating a new memory space each time the loop iterates

  • @aishwaryamishra7799
    @aishwaryamishra7799 2 года назад

    I jst appeared for an interview today, and the same loop question was asked to me, coudnt answer it kyunki maine Namaste JS ka ye video nahi dekha tha. But no worries, next interview mein hum phodenge. Thanks Akshay for sharing this kind of knowedge

  • @sachinbahegavankar
    @sachinbahegavankar 3 года назад +8

    Finally I found 1 channel which sales diamond's and it is free.

  • @hrehaandixit
    @hrehaandixit 8 месяцев назад

    I need to tell you that your teaching skills are class apart. I know you have great in depth knowledge of Javascript but talking about your teaching skills separately - they are mindblowing. Also, requesting for a course on NodeJS.

  • @MahendraSingh-od6cp
    @MahendraSingh-od6cp 3 года назад +5

    You explain things in very nice and different way so that everyone can understand, watching this series continuously and enjoying and waiting for new series on React js. You are just making life easy....Keep it up man 👏👏

  • @yatendraupadhyay2180
    @yatendraupadhyay2180 10 месяцев назад

    Never ever learnt such topics man . This teacher is on a different level.

  • @aniketshukla8085
    @aniketshukla8085 Год назад +6

    // In below case, close is getting called for each value of i. And for each close() called a new execution context is getting created and in execution phase of that context new callback function context is created with lexical environment, which is reffering to i with which close() was called as close(i) was immediate parent of that callback function. Above cycle goes on and on until for loop ends.
    function clock(){
    for(var i = 1 ; i

    • @priyam86f
      @priyam86f 10 месяцев назад

      you saved my day my man. what a wonderful explaination. you dived right back to the basics..thanks!!

  • @vidurwadhwa6897
    @vidurwadhwa6897 3 года назад +1

    Great explanation dude! I am myself guilty of hating javascript for a long time because I thought it was kind of stupid but now I see there is a reason behind everything.

  • @gokunik
    @gokunik 2 года назад +6

    One more way to solve that problem:
    function x(i) {
    var a = i;
    setTimeout(() => {console.log(a);}, a * 1000);
    }
    for (var i = 0; i < 5; i++) {
    x(i);
    }
    This makes the function more dynamic.

  • @aykut1
    @aykut1 2 года назад

    This syntax also will create closure :) thanks for great videos.
    setTimeout(
    (i) => {
    console.log(i);
    },
    1000 * i,
    i
    );

  • @sahul._
    @sahul._ 2 года назад +8

    To be simple,
    Let is block scoped and also function scoped,
    But var is function scoped not block scoped

  • @mohansingh-kx4rf
    @mohansingh-kx4rf 3 года назад +1

    Highly appreciated man. Just a note, to solve the problem with var , you are calling function with value not a reference. Problem will remain same if you pass the reference if I. Btw thank you for efforts.

  • @sathishpai4868
    @sathishpai4868 4 года назад +4

    I knew the answer, when you questioned. That's because of your previous video explanation on Closures, block scope, global scope.
    Thank you very much Akshay.

  • @MrVishal5000
    @MrVishal5000 2 месяца назад

    Best JavaScript tutorial video I have ever watched !!

  • @DK-ox7ze
    @DK-ox7ze 4 года назад +52

    "Many senior engineers will pull their hair over this". Well, if you don't know about the asynchronous nature of Javascript, you aren't senior!

  • @nikhilgiramkar2000
    @nikhilgiramkar2000 3 месяца назад

    You're GOD of Javascript, Akshay...
    Superb explanation

  • @prakashbtw678
    @prakashbtw678 4 года назад +4

    Yes bro crt, many interviewer asked this question

  • @sudonitin
    @sudonitin 3 года назад +2

    Most underrated mentor out there..... 🔥🔥🔥

  • @lovishchib
    @lovishchib 3 года назад +14

    Akshay explains confusing stuff: "You will pull your hair"
    Baldie me: give me something else, I don't wanna play

    • @UMBERELLA_ACADEMY
      @UMBERELLA_ACADEMY 2 года назад +1

      I think you still got some hairs, dig deeper🌝

    • @divyanshuchauhan4527
      @divyanshuchauhan4527 11 месяцев назад

      @@UMBERELLA_ACADEMY 😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂

  • @NaveenSingh-c3g
    @NaveenSingh-c3g Месяц назад

    Hey Akshay!! Loving your videos. Thanks bro!!

  • @prafulsinghvit
    @prafulsinghvit 4 года назад +157

    Now that you spoke of event loop, we need a video on this topic too 😀
    Folks, like this comment if you too want a video on event loop.
    Thanks!! 🙏

    • @akshaymarch7
      @akshaymarch7  4 года назад +91

      Haha, you got me. 😅
      But don't worry brother, before Event Loop there are few more fundamentals to cover. After covering them, event loop will be a cakewalk. 😎
      Pehle thoda mahual banayenge, fir seekhenge. 😇

    • @lsd3284
      @lsd3284 4 года назад +3

      Event Loops can be understood by JSConf webinars .

    • @sanjuk3185
      @sanjuk3185 4 года назад

      Hey folks, event loop video is out on this channel 3 days ago, check it out.

    • @gujjugando
      @gujjugando 3 года назад +1

      @@akshaymarch7 isi bat pe hindi me bhi bana do 🤩🤩

    • @lost-mar-ble
      @lost-mar-ble 3 года назад

      @@lsd3284 true.

  • @debarshidas8678
    @debarshidas8678 Год назад

    This is the best Javascript playlist in the entire universe!

  • @ashutoshguleria5968
    @ashutoshguleria5968 Год назад +8

    For those having dfficulty like me in understanding why each iteration creates its own closure or stores i in a separate memory space unlike var.
    You can think of each iteration of for-loop like a mini function almost, with new/different value of i (1,2,3,4,5) and and since let is block scoped (block scope meaning within the curly braces of each mini-function) it stores reference to i at different place (different closure made by different mini-functions).
    Also that,
    a closure closes over or captures the current scope when the callback function is passed to setTimeout.. But why does it closes over when call back function is called?
    Because a closure is formed when a function is created inside another function and the inner function has access to the outer function's variables and parameters.

    • @taskeen_fatimaa
      @taskeen_fatimaa Год назад

      thankyou I was able to understand the concept but your view made my concept more clear

  • @nitin0001
    @nitin0001 4 года назад +2

    I was already aware of the question and output but didn't know how to fix this problem. You explained it very beautifully

  • @kakadiazeel
    @kakadiazeel 3 года назад +8

    "Wherever I go, I see him" - Closures

  • @vinothkumarv9722
    @vinothkumarv9722 4 года назад

    Vinoth love >> Akshay :
    Finally one more thing learn from closure...with block scope example... really great...
    Actually i pass the video around 10min thinking like why is coming continually
    6
    6
    6 and etc. till 5 time... but not able to answered myself .. then i watched next frame then i got it because of its referring same memory space of "i" - clear : ) ....

  • @kalyanidas1402
    @kalyanidas1402 Месяц назад +5

    Not many senior developer are not pulling their hairs because they don't have

  • @adeete09
    @adeete09 4 года назад +1

    I personally started hating js after encountering similar issues as a fresher but now after coming across your channel i realised how much i didn't know and how beautiful js really is..tysm❤️

  • @syedsheralihussain
    @syedsheralihussain 4 года назад +4

    6:26 panic sets in. 😭
    11:07 relief. 😊

    • @akshaymarch7
      @akshaymarch7  4 года назад +1

      This shows how patiently you watched the video, brother! ❤️

  • @dhruvsolanki4473
    @dhruvsolanki4473 8 месяцев назад +1

    Very very interesting explanation, thank you Akshay sir for creating this!

  • @mohithchowhan7364
    @mohithchowhan7364 2 года назад +1

    You're the hope for JavaScript Developers!! 💯

  • @vatsalkhanna3597
    @vatsalkhanna3597 4 года назад +29

    Oh my god!
    I had an interview today and the interviewer asked this. The first question in JS he asked was this.
    But I didn't know it. 😐

    • @akshaymarch7
      @akshaymarch7  4 года назад +39

      Next time, aag laga dena mere dost!! 🔥

  • @durgaprasaddas6494
    @durgaprasaddas6494 2 года назад

    I've an interview scheduled today yet I'm watching this playlist, my confidence is getting higher with completing every video

  • @tommysingh7546
    @tommysingh7546 4 года назад +12

    We could also make use of IIFEs here to create a closure. Its basically the same as creating a wrapper function and explicitly calling it as shown in the video
    for(var i=0; i

  • @molyoxide8358
    @molyoxide8358 2 года назад

    Was working on DrumKit Project as a newbie to JS got frustrated when I got stuck in the "for loop". Thanks a lot for explaining.

  • @sahej97
    @sahej97 4 года назад +7

    Learning: never use var in js, unless almost necessary
    Var will mess your code beyond recognition

  • @mamtagarg2263
    @mamtagarg2263 2 года назад +1

    Aksahy, your videos are so informative and interesting that sometimes I don't like to press LIKE button just not to interrupt the flow you are teaching. Really big THUMSUP to your videos 👍. Thanks!!

  • @sg3558
    @sg3558 4 года назад +6

    4 solutions to this question
    1. Use let instead of var
    2.use iife
    3.Bind the callback function with the value ofi
    4.move i to outer function with let

    • @vinothkumarv9722
      @vinothkumarv9722 4 года назад

      U mean 2 poin variable life time' u saying right

  • @akshayagarwal9311
    @akshayagarwal9311 2 года назад

    Saw your video on closures yesterday and had a question on it my interview today. The interviewer seemed sure that I would flunk on that question but I calmly explained him everything with confidence. :D

  • @protube-live
    @protube-live 3 года назад +8

    Thank you Akshay for making it simple to understand. I have one doubt: You have mentioned timeout to x*1000, so why every output like 1 2 3 ... is printing after exactly 1 second even if x is incrementing?

    • @agrawalmahesh616
      @agrawalmahesh616 3 года назад +3

      when the settimeout was executed in the current execution, at that time the value passed to the settimeout function was 1000, 2000 and so on. so based on that value the timer is confugured in the background thread. when the variable is used to manipulate, it gives output as single value which is 1000, 2000 etc. you are not keeping reference of that variable. thats why it was printing aftet 1, 2, 3 seconds.

    • @surenderoati
      @surenderoati 2 года назад

      Because, Only the inner function part is put somewhere else not the whole setTimeout function.
      Akshay sir, please correct me if i am wrong.

    • @jv1994
      @jv1994 2 года назад

      may be running this will clear you doubt
      for (var i = 1; i < 4; i++) {
      const r = parseFloat((Math.random()*10).toFixed(2));
      const timeOut = parseInt((i + r) * 1000);
      console.log(i, timeOut, r);
      setTimeout(function () {
      console.log('var', i, new Date().toLocaleTimeString())
      }, timeOut);
      }

  • @desolatedj1
    @desolatedj1 Год назад

    Thanks again this question asked me in interview today and i explained it pretty well. You are awesome !!!! Keep creating such videos

  • @RoshanKrSoni
    @RoshanKrSoni 4 года назад +2

    my interviewer asked the same & that time i was stuck on it.
    thanks for making me understand 😍

  • @MrudulSankhere
    @MrudulSankhere 3 года назад +6

    First of all, beautiful series. Amazing work giving the in-depth knowledge of JS Concepts. Thank You very much.
    Question: In the block of for loop when loop variable is declared using 'let', you mentioned that in each iteration, a new copy for variable i is created.
    i++ executes by going to the reference of the variable and then adding 1 to it.
    I want to understand when the new reference is created? after i++ executes and it enters the for loop? Or when the loop body ends?
    Also, is there a separate instance in this case just adding to the value of i and creating a new instance with the corresponding value in that loop?
    Basically, I understand that in each iteration a new memory address is assigned. I don't understand when this process of creating new reference executes.
    1. loop body ends, new reference created, old memory freed, i++ executes?
    OR
    2. i++ executes, new reference created with updated value, old memory freed, loop body starts?
    Which of these is the correct order?

  • @KapilSharma-is1we
    @KapilSharma-is1we 2 года назад

    6:10 the time i watched for 4-5 times looks like you got my mind what i was thinking

  • @sktwister14
    @sktwister14 3 года назад +3

    Why does it create a new copy when we are using let? In every loop iteration the variable i remains the same, it is just that its value increases and is stored at the same place. Why is setTimeout unable to access just the reference to i variable and behave the same as var? Why is there a new copy associated?
    I did not understand why it happens just because it is block scoped. The timeout function will always have "let i" with it since it is always present in its lexical env just like a var variable.

    • @jasonbrody4618
      @jasonbrody4618 3 года назад

      Me too he just said block scoped but he didn't explain how it's new variable not even in his block scope video. If you know can you explain?

    • @raufurkhan9191
      @raufurkhan9191 Год назад

      @@jasonbrody4618 I too dont understand. Can Anyone explain this.?

  • @sahej97
    @sahej97 4 года назад

    1 question -
    I used let j=i inside loop just above the setTimeout
    And used console.log(j) inside setTimeout and its worked...

  • @tanishqgupta1652
    @tanishqgupta1652 4 года назад +5

    You made me pull my hair so many time, I am bald now. What to do? :p

    • @akshaymarch7
      @akshaymarch7  4 года назад +7

      🥺 Don't worry brother, this will help you - amzn.to/2VUgHAu

    • @RoshanKrSoni
      @RoshanKrSoni 4 года назад

      @@akshaymarch7 😂😂

    • @AviatorBro
      @AviatorBro 4 года назад

      @@akshaymarch7 😂😂😂

    • @mukeshgaud2603
      @mukeshgaud2603 4 года назад

      @@akshaymarch7 grt sir this solution will enclose his baldness.

  • @singhkr
    @singhkr Год назад +1

    kudos to you
    this is heavy content but with your explanation its become easy .
    great video

  • @tombraider6532
    @tombraider6532 3 года назад

    A well explained closure from the start till the middle and en of the lecture. I thought I understood. ....but i didn't.. it is not easy. I am tired of this closure thing. I am not going to give up.

  • @Uttam_Singh95
    @Uttam_Singh95 2 года назад

    This is Beauty of Javascript we predict something but it comes deifferent !

  • @beastboy..
    @beastboy.. 4 года назад +1

    Brother you explain each and every complex topics with ease.👍👍👍👍👀👀👀 thanks..

  • @harshrai6259
    @harshrai6259 3 года назад

    I will gift you a t-shirt with the quote "time , tide and js waits for none " once I get a job ,
    I am really greattful for this awesome course.

  • @kamal-purohit
    @kamal-purohit Год назад

    One more Solution could be (without using "let") :
    function x(){
    var j = 1;
    for(var i = 1; i {
    console.log(j++);
    },1000*i);
    }
    }
    x();
    // Thank you for your Great explanation. Grateful

  • @SachidanandSuraj
    @SachidanandSuraj 3 года назад

    javascript seems so cool and easy now with your explaination, and your smile at last make me smile too :)

  • @telugualgebra2196
    @telugualgebra2196 Год назад

    Thanks Akshay
    my Interviewer asked 3 qns from it iam unable to anser now got clarity thanks