Javascript Interview Questions ( 'this' Keyword ) - Output Based, Scope, Implicit Binding, etc

Поділитися
Вставка
  • Опубліковано 19 гру 2024

КОМЕНТАРІ • 180

  • @RoadsideCoder
    @RoadsideCoder  2 роки тому +2

    🔴 Get my Complete Frontend Interview Prep course - roadsidecoder.com/course-details

    • @Solo_playz
      @Solo_playz 2 роки тому +2

      Hii brother can I get to know what's your age ??

    • @RoadsideCoder
      @RoadsideCoder  2 роки тому +1

      @@Solo_playz 24

    • @Solo_playz
      @Solo_playz 2 роки тому +1

      @@RoadsideCoder Great man are you an IITian

    • @RoadsideCoder
      @RoadsideCoder  2 роки тому +1

      @@Solo_playz No, I'm from a tier 3 college

    • @Solo_playz
      @Solo_playz 2 роки тому

      @@RoadsideCoder What is tier 3 ??

  • @BCSBhaveekJain
    @BCSBhaveekJain Рік тому +1

    At 14:50 we can do "setTimeout(user.logMessage(), 1000);", its giving correct output. We can do this also "
    setTimeout(user.logMessage.bind(user), 1000);"

  • @shubhamkharadkar3753
    @shubhamkharadkar3753 6 місяців тому +1

    00:02 Understanding 'this' keyword in JavaScript
    02:11 Understanding 'this' keyword in different contexts
    04:14 Understanding 'this' keyword in JavaScript
    06:32 Understanding 'this' keyword in normal function and arrow function
    08:41 Understanding 'this' keyword in JavaScript object
    10:37 Accessing 'this' inside a function can be tricky.
    12:42 Understanding 'this' keyword in JavaScript
    14:49 Understanding 'this' keyword in different functions
    16:50 Understanding 'this' binding in JavaScript.
    18:38 Understanding 'this' keyword in JavaScript functions
    20:40 Example of chaining functions in JavaScript
    22:32 Upcoming video on Explicit Binding

  • @harshdeepbilaiya3076
    @harshdeepbilaiya3076 2 роки тому +4

    this is some excellent practice material. pls add more o/p based Qs for OOJS, Prototypes, etc.
    an addition to the problem at 17:25 -
    if at line 4, we use let/ const instead of var to create 'length' variable, then while executing 'callback', the (this) Window object won't have length set to 4. It could be anything, like in JSFiddle, it is set to 0. since let/ const are created in TDZ.
    there can be so many more variations to this problem. i find this an incredible practice problem. many thanks!

  • @AkramDevTalks
    @AkramDevTalks Рік тому +4

    Great explanation! A more accurate answer would be :
    In an arrow function "this" is a part of its closure, i.e. it is taken from the context. Where it is defined and not the object in which it is defined.
    In a normal function "this" is points to the object it is a part of.

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

    This series is Onepiece of Javascript

  • @xen0076
    @xen0076 2 роки тому +7

    You are an absolute genius, i never understood this concept but your teaching is just fabulous, i hope that you launch your own udemy course in a structured way to master JS. You deserve to get paid for such content

  • @chiragsheth2263
    @chiragsheth2263 2 роки тому

    13:50 logs name when we use parenthesis in front logMessage method invocation.... Or if you set user property using let keyword

  • @front-end-world
    @front-end-world 8 місяців тому

    I was recently asked a question on what is the difference between invoking the object directly suing the method & using call
    I did not know this implicit bindings vs explicit binding
    Great one kudos piyush :)

  • @purusharma8192
    @purusharma8192 2 роки тому +1

    this channel is highly addicted,i have seen more than 10 videos continously

  • @ninjaplavi
    @ninjaplavi 2 роки тому +7

    I know it is a generalization, but many Indian devs seem to have issues with following naming best practices and I can't figure out why that is...On a more serious note, great videos, well structured and researched.

    • @de-stressmusic432
      @de-stressmusic432 2 роки тому +3

      This is because the whole video is a copy of an article by dmitripavlutin, my previous comment mentioning it was deleted.

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

      @@de-stressmusic432 Its was helpful to have a written article

  • @akshayshinde2403
    @akshayshinde2403 2 роки тому +1

    Question 6 & 7 are just mind blowing.

  • @navneet8638
    @navneet8638 2 роки тому

    Bhai Apka Knowledge toh kamal ka hai🖤🖤🖤

  • @dhananjaygupta8554
    @dhananjaygupta8554 Місяць тому +1

    This is blowing my mind 😮

    • @RoadsideCoder
      @RoadsideCoder  Місяць тому

      full playlist here - ua-cam.com/play/PLKhlp2qtUcSaCVJEt4ogEFs6I41pNnMU5.html&si=wrbL8KA4a4fxHNRN

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

    This is some really high quality content and all for free! Your curation of questions are impressive, really making me scratch my head. Thank you mate!

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

      Thanks man! Full course here - roadsidecoder.com/course-details

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

      @@RoadsideCoder For sure. I'll buy your courses the first thing I get a job lol. Also do you have a patreon.

  • @vincent3542
    @vincent3542 2 роки тому

    Unbelievable video! I like all your Playlist about react and javascript...
    Love from indonesian 👍

  • @anubhapant5227
    @anubhapant5227 10 місяців тому

    Just learned so many new things from this video. The last ques is just amazing. Please make more such video of questions like the last one. Highly informative content 👌✌

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

    Thank you Piyush, great explanations as always.

  • @itsMohak
    @itsMohak Рік тому

    You are splendid

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

    Thanks Piyush, your roadside coding clears so many doubts related to "this" 🤟🙏🙏

  • @ivanshoshkov
    @ivanshoshkov 2 роки тому +1

    I havent seen more detailed videos on coding subjects than yours! Thank you!

  • @himanshupandey3451
    @himanshupandey3451 2 роки тому +2

    on 17:56 the same code run on browser and node console return different result. on node console it return undefined?

  • @simionandrei5409
    @simionandrei5409 2 роки тому +23

    Great video! Are you going to drop some videos related to OOP Concepts(constructor, class) or Prototype Inheritance?

    • @RoadsideCoder
      @RoadsideCoder  2 роки тому +19

      Yes, definitely if more people ask for it!

    • @manojradharapu4688
      @manojradharapu4688 2 роки тому

      @@RoadsideCoder pls do it , then more people will watch and subscribe like me

    • @techupdate03
      @techupdate03 2 роки тому +2

      @@RoadsideCoder yes sir..I also interested. After that can you explain about promise from scratch.

    • @kalyanyadlapalli6103
      @kalyanyadlapalli6103 2 роки тому +2

      @@RoadsideCoder yes please drop a video brother

    • @ashwaniagrawal700
      @ashwaniagrawal700 2 роки тому +2

      @@RoadsideCoder yes, need some good videos on OOP concepts

  • @MukeshKumar-bt5gb
    @MukeshKumar-bt5gb 2 роки тому +2

    Thanks, Was waiting for this!
    I was asked many questions regarding this in Cars24 interview this week 😄

  • @hellochenyu
    @hellochenyu Рік тому

    Can you please help expain in 18:02? Why the nested fn() is targeted the global window object? Thanks!

    • @RoadsideCoder
      @RoadsideCoder  Рік тому

      watch my functions video, u will understand it

  • @shrushtipolekar8804
    @shrushtipolekar8804 2 роки тому +1

    Extremely helpful video! Helped me to develop a more clear understanding of 'this' keyword . Please keep on making more such output based questions videos.

  • @abhishekvishwakarma9045
    @abhishekvishwakarma9045 2 роки тому

    fact is `this` is the least thing we will ever gonna use (class based is exception) in our day to day work, this makes this concept tougher but interviewers love this type of question lol😆, btw Awesome video 🔥

    • @RoadsideCoder
      @RoadsideCoder  2 роки тому +1

      That's not true, if your company is using let's say class based component in react, it will use 'this' a lot

    • @abhishekvishwakarma9045
      @abhishekvishwakarma9045 2 роки тому

      @@RoadsideCoder Completely agree forget about class based ✌but we're shifting towards functional based programming 😌

  • @charankumarbasam5866
    @charankumarbasam5866 2 роки тому

    this with arrow function is greatly explained. thank you

  • @AmirHussain-dd6zw
    @AmirHussain-dd6zw 2 роки тому

    You have great variety of questions

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

    thank you because of you I understand this

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

      Thanks, u can check the complete course here - roadsidecoder.com/course-details

  • @kartik7775
    @kartik7775 2 роки тому

    Thank you so much! You're my favorite teacher.

  • @bruhathimusicalwings1503
    @bruhathimusicalwings1503 2 роки тому

    gem of explanation ...thank you

  • @SonuKumar-tw1oi
    @SonuKumar-tw1oi Рік тому

    Please make a video on class , and its relation with this...Your content and teaching is fabulous.

  • @fares.abuali
    @fares.abuali 2 роки тому +1

    Thank you so much!
    This is so informative 💖

  • @sajalgupta7345
    @sajalgupta7345 2 роки тому

    My solution for Question 2:
    function user() {
    return {
    name: "Sajal",
    ref: this
    }
    }
    const test = user();
    const result = user.bind(test);
    console.log(result().ref.name); //Sajal
    I tried it with .bind() 😀

  • @kalynndier6524
    @kalynndier6524 2 роки тому +1

    I absolutely LOVE your videos. You are amazing at explaining everything and for the first time EVER, I finally get it! Thank you. Do you have patreon? I'd love to support you.

  • @mohininarwade1108
    @mohininarwade1108 Рік тому +1

    Hi Dear… I am really a big fan… You have such a deep knowledge of almost every technology. I have 1 request… Do you have any idea about how can we call salesforce commerce cloud API from Angular??? please reply if you know this or make a short video. Thanks

  • @AmolAghav
    @AmolAghav 2 роки тому

    Question 5 was amazing! Thanks!

  • @RahulKumar-ew1qw
    @RahulKumar-ew1qw 2 роки тому

    Bro u make me great than my yesterday.
    Thank you ...

  • @vinithaboyidi3354
    @vinithaboyidi3354 Рік тому

    Great explanation!! Thanks

  • @Saikumar-kb4lf
    @Saikumar-kb4lf 2 роки тому

    This is really good content. I can't deny that. But definitely here 'this' was explained in a hacky way. Please watch this related video from dev sage and you can really master this

    • @RoadsideCoder
      @RoadsideCoder  2 роки тому

      Thanks, The main aim of this video is to assist for Javascript Interviews, therefore the hacky way.

  • @varunparihar3717
    @varunparihar3717 10 місяців тому

    this was great..can you please make videos on node,express,mongo too. That would be extremely helpful since you explain things quite nicely.

  • @angryman9333
    @angryman9333 Рік тому +1

    I love this

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

    thank you Roadside coder .

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

    for all the viewers i give the golden rule
    * object don't create binding with this function do in js
    for e.g
    let obj = {
    name:"steve",
    valueOfthis:this,
    arrowFn:()=>this,
    normalFn:function(){
    return this
    }
    }
    here valueOfthis and arrowFn always gives window why because object don't create binding with this and arrow function also not create binding with this whereas normalFunction create binding with this
    hope this explanation work 😀😀

  • @imtiazalikhan2709
    @imtiazalikhan2709 2 роки тому

    Bro, your output based questions are Awsome.👋

  • @ankushladani496
    @ankushladani496 2 роки тому

    Yes we want video on class,new keyword , etc....

  • @rahulvanave
    @rahulvanave 2 роки тому

    Yes
    Please make video on class as well

  • @UtkarshSinghP
    @UtkarshSinghP Рік тому +1

    THIS IS GOLD

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

    yes please make a video on constructors and this🙏

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

      You can find this and other topics here - roadsidecoder.com/course-details

  • @nishachapte7
    @nishachapte7 2 роки тому

    Thank you so much..amazing content.

  • @sidhishkumar
    @sidhishkumar 2 роки тому

    yes Please create a deep tutorial on class and constructor

  • @ProgrammingWithProject
    @ProgrammingWithProject 2 роки тому

    Please continue this series

  • @parmarhitendrasinh4504
    @parmarhitendrasinh4504 2 роки тому

    Amazing Video's ♥️

  • @shreymaurya3344
    @shreymaurya3344 2 роки тому

    Amazing Video🥳

  • @riturathinsharma5931
    @riturathinsharma5931 2 роки тому +2

    This always sounds confusing. Just the easiest way to interpret. Its always the caller function for the normal function calls and for the arrow functions it will always be 2 level deeper( kind of like parent of parent)

  • @deepakverma2071
    @deepakverma2071 2 роки тому +1

    Great video bro! Keep coming up with interesting videos like these ❤️.
    Just adding one more concept here Arguments in a function is not an array it is array like object.
    Array like object does not have all the properties of an array like map, filter etc.

  • @krunaljoshi7390
    @krunaljoshi7390 Рік тому

    Really good content, make some practice platform

  • @abd11868
    @abd11868 2 роки тому

    14:08 piyush, can we do bind as well here? because I think once we bind a method with a object, no matter when/where we call that function it will always point to that object.

  • @jayantsharma2669
    @jayantsharma2669 2 роки тому

    Hey Piyush, thanks for this awesome video. Please correct my understanding if I am wrong:
    print is defined inside obj and obj don’t have its own scope its inheriting the scope from its parent which is global object that’s why arrow function pointing to global object (bcz it inherits this from lexical scope) .
    let obj = {
    name : 'temp',
    print : () => {
    console.log(this); // global/window object
    }
    }

    • @RoadsideCoder
      @RoadsideCoder  2 роки тому +2

      It doesn't matter what scope obj has, arrow function takes its scope from parent normal function which in this case is not there, so it is targeting global. So even if the arrow function nested deep inside a object, if it doesn't have a parent normal function, it act the same.

    • @jayantsharma2669
      @jayantsharma2669 2 роки тому +1

      @@RoadsideCoder Ok got it, arrow function search for nearest regular function that encloses it but in this case its not enclosed by any regular function then global this is inherited by arrow function.

    • @RoadsideCoder
      @RoadsideCoder  2 роки тому

      @@jayantsharma2669 Yes!

  • @dharmeshgohil9375
    @dharmeshgohil9375 2 роки тому

    Awesome👍👍👍

  • @pushpabhandari619
    @pushpabhandari619 2 роки тому

    Helpful!! , thank you ❤

  • @mohdraqim2571
    @mohdraqim2571 Рік тому +2

    var length =4;
    function callback(){
    console.log(this.length);
    }
    const object ={
    length :5,
    method(fn){
    fn();
    },
    };
    object.method(callback);
    it giving undefined instead of output 4 anyone?

  • @VivekG-e1o
    @VivekG-e1o Рік тому

    Please make a video on session and local storage with Json.stringify , parse , constructors and classes also.

  • @tharapearlly1736
    @tharapearlly1736 2 роки тому

    Have you come across any practice sites that help us sharpen these skills?

  • @neeraj-u6e
    @neeraj-u6e 2 роки тому

    Make video for everything in javaScript ..

  • @parmaryash4406
    @parmaryash4406 2 роки тому +1

    Supep video

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

    Great video as always. Btw you are saying and spelling “substract” instead of “subtract”

  • @acchugowda7767
    @acchugowda7767 2 роки тому

    Please release next vedio on bindings as soon as possible.

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

    bro what's your approach for learning these type of concepts in depth?

  • @lifeisbeautifu1
    @lifeisbeautifu1 2 роки тому

    Thank you

  • @GopalAkkar-h9b
    @GopalAkkar-h9b Рік тому

    Can you add interview series for Angular ? It will be really helpful for us as angular developer.

  • @anejasahil
    @anejasahil 2 роки тому

    Dude just got introduced to your channela few days back your content is amazing, keep going man!!

    • @RoadsideCoder
      @RoadsideCoder  2 роки тому +1

      Welcome aboard! And thanks a lot. ❤️

  • @divyasampath2843
    @divyasampath2843 Рік тому

    Video on class and constructors please!!

  • @RavindraSingh-lp9pl
    @RavindraSingh-lp9pl 9 місяців тому

    please make video on class and constructor in Javascript

  • @charuhas1602
    @charuhas1602 Рік тому

    Piyush please create video on class, prototype inheritance, and new feature of javascript

  • @0Ipsita0
    @0Ipsita0 Рік тому

    Make video on class, constructors video please, i don't understand those

  • @ProgrammingWithProject
    @ProgrammingWithProject 2 роки тому

    Please tell the references point from where you learned all the core concepts of javascript

  • @DevangPatil
    @DevangPatil 2 роки тому

    Nice.

  • @ShivamSingh-ct1ix
    @ShivamSingh-ct1ix Рік тому

    Hello Can you make a video on OOPS concept in javascript.

  • @bluevojka
    @bluevojka 9 місяців тому

    Hi, can anyone please explain 18:01

  • @ammanmoini1202
    @ammanmoini1202 2 роки тому

    sir what is window object and global object?
    plz explain a bit..

    • @RoadsideCoder
      @RoadsideCoder  2 роки тому

      Hey, you can refer to this - developer.mozilla.org/en-US/docs/Web/API/Window

  • @avinaymishra8345
    @avinaymishra8345 2 роки тому

    please make oops concept on javascript in details

  • @s1k_guy
    @s1k_guy 2 роки тому +1

    Bro why dont you create javascript vedios on basic data structure algorithm so it will help in interviews.

    • @RoadsideCoder
      @RoadsideCoder  2 роки тому +3

      Yes I have planning that, coming soon!

  • @hemamane739
    @hemamane739 Рік тому

    let user = {
    name :"hema mane!",
    getName(){
    console.log(this.name)
    }
    }
    let data =setTimeout(
    user.getName()
    ,1000)
    console.log(data)
    console.log(data) ---> is it correct way of accessing or else mandetory to use inside function only

  • @vishaltp6083
    @vishaltp6083 2 роки тому

    hey ,
    where can we find these kind of other questions

  • @mohitarya5189
    @mohitarya5189 Рік тому

    Hello can anyone tell me where I can get the javascript output based questions

  • @divasbhadani9225
    @divasbhadani9225 Рік тому

    where we can practice all those types of question ?

  • @PIYUSH-lz1zq
    @PIYUSH-lz1zq 2 роки тому

    sir , can u make videos to make nested comment section and folder structure using JS

  • @sanjaychoudhury1266
    @sanjaychoudhury1266 11 місяців тому

    this.a=7;
    function test(){
    console.log(this.a);
    }
    test() result is showing undefined

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

    Why calling user.method() inside console.log is not called as callback??

  • @dharmeshgohil9375
    @dharmeshgohil9375 2 роки тому

    can you make a video of stripe payment plzzzzzzzzzzzz in hindi

  • @ketandutt
    @ketandutt 2 роки тому

    Q3. it should be setTimeout(user.logMassage(), 1000) //() missing

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

    Hey guys .. can anyone explain why window.ref.name is not undefined and it is empty?

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

    So What' difference if you upload same video in your paid course and and youtube ?

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

      Here's your answer - www.linkedin.com/feed/update/urn:li:activity:7174019126041018370/?originTrackingId=GTshFzTMQBqFiLZrQQuBNw%3D%3D

  • @tricyclejesus4572
    @tricyclejesus4572 Рік тому

    You should title these videos "JS trick questions". Seriously, if an interviewer was to ask these sorts of questions I'd politely excuse myself and look elsewhere.

  • @mastpahadan490
    @mastpahadan490 2 роки тому

    you go boy!!!!❤️❤️

  • @arvindverma2629
    @arvindverma2629 Рік тому

    make a video class and constructor

  • @ayushyadav8851
    @ayushyadav8851 2 роки тому

    The day this video got published i was asked the calc question and i messed up because of 'this' reference

  • @PIYUSH-lz1zq
    @PIYUSH-lz1zq 2 роки тому

    bhaiya , make a small js project which consist of these js concepts of debouncing , throttling etc.. placements r comming