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

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

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

  • @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 ??

  • @shubhamkharadkar3753
    @shubhamkharadkar3753 8 месяцев назад +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

  • @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

  • @AkramDevTalks
    @AkramDevTalks Год назад +5

    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.

  • @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!

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

    This series is Onepiece of Javascript

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

    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);"

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

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

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

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

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

    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  9 месяцев назад

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

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

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

  • @dhananjaygupta8554
    @dhananjaygupta8554 3 месяца назад +1

    This is blowing my mind 😮

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

      full playlist here - ruclips.net/p/PLKhlp2qtUcSaCVJEt4ogEFs6I41pNnMU5&si=wrbL8KA4a4fxHNRN

  • @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 5 месяцев назад

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

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

    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 👌✌

  • @sanjaytk
    @sanjaytk 6 месяцев назад

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

  • @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.

  • @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.

  • @MukeshKumar-bt5gb
    @MukeshKumar-bt5gb 2 года назад +2

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

  • @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

  • @front-end-world
    @front-end-world 9 месяцев назад

    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 :)

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

    You are splendid

  • @abhishekkumar-ot4zo
    @abhishekkumar-ot4zo Месяц назад

    4:06 this keyword in a function with in an object points to the object
    4:43 this keyword in a function with in a nested object points to the nested object

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

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

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

    Question 6 & 7 are just mind blowing.

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

    Bhai Apka Knowledge toh kamal ka hai🖤🖤🖤

  • @fares.abuali
    @fares.abuali 2 года назад +1

    Thank you so much!
    This is so informative 💖

  • @lann1sterroy
    @lann1sterroy 5 месяцев назад

    Thank you Piyush, great explanations as always.

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

    this with arrow function is greatly explained. thank you

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

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

  • @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

  • @shubhamkakad10x
    @shubhamkakad10x 7 месяцев назад

    thank you because of you I understand this

    • @RoadsideCoder
      @RoadsideCoder  7 месяцев назад

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

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

    I love this

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

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

  • @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.

  • @AmirHussain-dd6zw
    @AmirHussain-dd6zw 2 года назад

    You have great variety of questions

  • @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

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

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

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

    THIS IS GOLD

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

    yes please make a video on constructors and this🙏

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

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

  • @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 😌

  • @anandstephan6020
    @anandstephan6020 4 месяца назад

    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 😀😀

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

    Great explanation!! Thanks

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

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

  • @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

  • @RahulKumar-ew1qw
    @RahulKumar-ew1qw 2 года назад

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

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

    Please continue this series

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

    Question 5 was amazing! Thanks!

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

    Yes
    Please make video on class as well

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

    Bro, your output based questions are Awsome.👋

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

    yes Please create a deep tutorial on class and constructor

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

    Awesome👍👍👍

  • @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() 😀

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

    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)

  • @ShivamKhantwal94
    @ShivamKhantwal94 7 месяцев назад

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

  • @VivekG-e1o
    @VivekG-e1o Год назад

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

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

    Amazing Video🥳

  • @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.

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

    Supep video

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

    Thank you so much..amazing content.

  • @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.

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

    Thank you

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

    Amazing Video's ♥️

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

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

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

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

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

    Helpful!! , thank you ❤

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

    Nice.

  • @GopalAkkar-h9b
    @GopalAkkar-h9b Год назад

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

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

    where we can practice all those types of question ?

  • @ShivamSingh-ct1ix
    @ShivamSingh-ct1ix Год назад

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

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

    Please release next vedio on bindings as soon as possible.

  • @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!

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

    Really good content, make some practice platform

  • @RavindraSingh-lp9pl
    @RavindraSingh-lp9pl 11 месяцев назад

    please make video on class and constructor in Javascript

  • @0Ipsita0
    @0Ipsita0 Год назад

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

  • @PIYUSH-lz1zq
    @PIYUSH-lz1zq 2 года назад

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

  • @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.

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

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

  • @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

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

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

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

    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?

  • @neeraj-u6e
    @neeraj-u6e 2 года назад

    Make video for everything in javaScript ..

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

    Video on class and constructors please!!

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

    please make oops concept on javascript in details

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

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

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

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

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

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

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

    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

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

    can you make a video of stripe payment plzzzzzzzzzzzz in hindi

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

    hey ,
    where can we find these kind of other questions

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

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

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

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

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

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

  • @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!

  • @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. ❤️

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

    Live stream + resume review

  • @PIYUSH-lz1zq
    @PIYUSH-lz1zq 2 года назад

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

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

    make a video class and constructor

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

    Hi, can anyone please explain 18:01

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

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

  • @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.

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

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