10 JavaScript Interview Questions You HAVE TO KNOW

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

КОМЕНТАРІ • 91

  • @Shagidelic
    @Shagidelic 4 місяці тому +3

    Please note TS only provides IDE level type safety. There is no compile time or runtime type safety.
    Meaning? Type checking errors will only occur if you are using an iDE that has linting or has basic type checks. Since TS still allows dynamic variables it has lots of type unsafe stuff allowed. When it is transplied into JS, even static type checks are gone and Runtime type checking also doesn't exist.

  • @Diego_Cabrera
    @Diego_Cabrera 9 місяців тому +13

    Literally perfect timing man. I’m waiting to hear back if from my first interview and I’ll be assigned to pair program with a dev at the company. I’m quite knowledgeable but there are areas where I could brush up on. Thanks so much!

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

      Yeahhh! So glad to hear that!

  • @Gamewithstyle
    @Gamewithstyle 8 місяців тому +7

    So nearly 50% of these are for if you’re interviewing for a react job. It’s likely you are, but it’s so important that you understand larger JavaScript concepts. There is one question about scope in this list, and it’s something juniors trip up on constantly. If you can tell me what a react hook is, but you don’t know what hoisting means, or the difference between const and let, then something went sideways at some point.

    • @CalvinCurrie-g7m
      @CalvinCurrie-g7m Місяць тому

      Spot on,

    • @CalvinCurrie-g7m
      @CalvinCurrie-g7m Місяць тому

      How I see it is, try explain why looping 0,1,2 is my preference bad practice doing in js. Because we would've prefer to have something more [0,1,2] for a loop. Using var would give 333 and let gives 012 when looped i>3.. Now react we use useState, for reposnive data n design. So instead of having the computer loop 1, 2, 3. We have set it n it loops that sequence. This is all important , especially with creating typewriter effects and how bugs can occur. Why bugs can occur etc

    • @CalvinCurrie-g7m
      @CalvinCurrie-g7m Місяць тому

      I say var n let, because we have to learn how js reads code, line by line, or asynchronous

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

    James is an AI machine 😂 dude hit a infinite loop glitch the last 10 seconds 😂😂😂

  • @pavfrang
    @pavfrang 9 місяців тому +2

    Thanks for the review! A pure function should not write to a file, because the file could indirectly affect state and therefore affect the result.

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

      Yeah if it's being read by another. True. Good point.

  • @KAZVorpal
    @KAZVorpal 4 місяці тому +1

    Actually, console.log DEFINITELY counts as a side effect, RE pure functions.
    So does printing to the screen, or saving to a file.
    This is slightly different than how you are still allowed to print in a Java function declared as "void", because that ONLY applies to (not) returning data, rather than to all mutation.

  • @simonswiss
    @simonswiss 9 місяців тому +4

    Thanks for making that video! I always assumed I would BOMB tech interviews and thought I'd struggle through this video. But I watched all of it, paused right after seeing the question and did my explanation. I think I nailed 9 out of 10 questions - the first one (closures) being the one I am not capable of explaining fluently. I know what closures are, but have a hard time explaining why they're important and useful. Everything else I feel like I could talk confidently about, and wouldn't be worried about digging a bit deeper if necessary. Closure, I felt like I was bullsh#tting my way through the explanation lol

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

      Love this! It's interesting how we can understand how things work but struggle to explain them sometimes. Thanks for watching and sharing your thoughts!

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

    Wow, I guess I know a lot more about JS than I thought. I still have a ways to go but this is pretty encouraging.

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

    I knew them all!! I'm 3.4yrs into teaching myself. I'm currently hoping between JS, TS, GO & Rust... mainly JS/Rust atm.

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

      Yeahhh! Love to hear it!

  • @AlexandreMoreauLemay
    @AlexandreMoreauLemay 9 місяців тому +1

    Console logging can be considered a side effect in specific situations; one of which is if you use stdin/stdout to pass values into buffers of different subprocesses. An unexpected console log can mess this up

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

      Also if you use next.js server components then using a console log can cause the side effect of slowing your whole site down 😅

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

      bahaha this is great!!

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

    The issue I see most with people understanding promises is what actually happens during the “async” part. Most inexperienced developers don’t understand the event loop, which causes problems especially in unit testing and mocking.

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

    I think this is a pretty good list based on my extensive experience in Javascript. The video gave me a few ideas of things to look into for my next interview. Thank you for putting this together.

  • @slacle
    @slacle 9 місяців тому +11

    Hey James, where can I follow along for updates?

  • @khaledsanny4817
    @khaledsanny4817 8 місяців тому +10

    That rap sequence at the end 😂🔥🔥

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

      I don't know what the heck happened there lol

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

      Confirmed he's a cyborg.

  • @SeRoShadow
    @SeRoShadow 9 місяців тому +4

    My answers for the JS Interview:
    1. What is a closure ? Unsafe and Unreliable scope
    3. Composition, isnt that just nesting ?
    5. Whats a promise ? Its own thread.
    6. What is typescript ? a LSP linter and transpiler.
    8,9 What is a React ? Its a JS library.
    10. TDD ? Wasted effort not getting things done. Testing Prod ready code is diffrent story.
    Please let me know if those answers feel right.

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

      3. No, it means returning functions from other functions, using closures to change the resulting function. Think of it like the opposite of inheritance: instead of “bird” inheriting from “flying animal”, you would pass the “bird” function to the “makeFlyingAnimal” function that would return a flying bird. This way, it’s easier to create for example a phoenix, because you could just pass your bird to a “resistFire” and a “reviveForever” function.

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

      @@UliTroyoI apreciate your help but ... after a little research my statement holds truth. It is function nesting, nothing more. And I consider it bad practice since you have to rewrite the code, in order, every time one step goes wrong. Not for me. Id rather do each function in its own line.

    • @cotyhamilton
      @cotyhamilton 9 місяців тому +1

      That’s not what a promise is, async doesn’t mean multi-threaded

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

      ​@@cotyhamiltontrue, but what would be the diffrence then ?

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

      JS is single threaded.

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

    I never liked the Closures or Function Composition questions. Everything else for the most part seem more relevant to modern development. I suppose the first questions are more for core/library development.

  • @srinivasnahak3473
    @srinivasnahak3473 2 місяці тому

    thank you so much for these questions.

  • @Wentris71
    @Wentris71 3 місяці тому +2

    To be honest, quite weak list of items.
    I’d add for JS:
    - context/scope in js;
    - concept of prototypes/classes;
    - callbacks vs async/await vs generators+iterators
    - loops: while/for vs prototype-based(to implement own reduce/filter/map)
    - closures:
    1. function recurring - as another way to do loops
    2. Module pattern
    3. HOF/HOC
    - data structures in JS - Map/Set/Array/Object and custom such Tuple etc
    - of course XHR
    For React:
    - premature optimization - knowing when and how to use and more importantly when not to use: useCallback, useMemo, memo;
    - to understand React.FC life cycle(in comparison to React.Component class)
    - react context
    Whole bunch for TS:
    - type vs interface; why better not use interfaces😂
    - generics + infer + extend + never
    - why not to use enums 😂
    List is not complete but I believe it covers more important topics than the list in the video and it is more close to real world interview 😏

  • @deatho0ne587
    @deatho0ne587 9 місяців тому +1

    React should not even be on a top 10 of JS, due to it's very nature kind of does most of the heavy lifting for Devs. If you know the company uses a framework/library like React then learn it and it should have it's own top 10.
    Things that are more important and have seen newer Devs to JS in general fail on.
    - Primitives, Objects and Arrays - you will get some of this I think from number 4 (do not remember which number)
    - Testing as a whole - meaning explain the type of testing you like and if the company does something else you could pick it up
    - Big O(n) and why you might use for, forEach, map, set, etc... Minor most of the time (in actual coding) but when it matters it matters. Loved for interview questions though

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

    Lol, there's a mess-up with the audio at the end

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

      It's the brainwashing technique to give you no choice but "check that out on James Q Quick updates" 😅

    • @Pete133
      @Pete133 9 місяців тому +1

      Trippin me out maaaaan 😆

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

      Yooo I have no idea what happened there lol

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

    Thanx for the cool video. I was maybe missing the new features we got in the modern ECMA-Script world, object oriented programming in JavaScript, classes vs. prototypes, maybe deeper functional things like currying and stuff. I personally do not like those kind of questions. I like a more pragmatic approach.

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

    Wow James what are the odds with me having a 2 hour coding challenge coming up and you make this video. Thanks

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

    the most important thing is to make sure you have fun

  • @chandrashekar-us6ef
    @chandrashekar-us6ef 6 місяців тому

    What is the output of a URL on a browser for SPA vs MPA

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

    This was so helpful! More please!

  • @dev-akeel
    @dev-akeel 9 місяців тому

    3:54 that was first thing what triggered in my mind after hearing the word "side effect".

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

    learned a lot! thanks for the video!

  • @sharqyyem
    @sharqyyem 4 дні тому

    If we rarely encounter these types of questions in day-to-day coding, why are they so common in interviews? It feels like they’re designed to make life harder rather than genuinely evaluating practical skills. 😭

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

    Typescript is a linter for Javascript

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

    Thanks

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

    for(var i = 1; i {
    console.log(i);
    }, 1200);
    }
    Output is
    4
    4
    4
    &
    for(let i = 1; i {
    console.log(i);
    }, 1200);
    }
    Output is
    1
    2
    3
    Why??

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

      var is in global scope so every time the settimeout function is called the var i get updated, lastly when i = 4 then loop condition is false and delay is there for settimeout, after the timer ends one by one values will print i.e. i= 4
      let is in block scope, which is not under window object or global scope, so every time let i is coming in loop serate memory is created for let i, so in the separate memory i will have the values 1, 2, 3 and when the condition is false and timer also ends then this value will get printed i.e 1 2 3
      to understand this thing more visually you can write a script with HTML and this code
      then go to inspect then source there you can see your code and put a debugger there, then you can understand the code efficiently.
      you can use var to get the result 1 2 3, for that you need to use closure, you can check this code below. I have done it with closure and used var.
      function x () {
      for(var i=1; i{
      console.log(i) // 1 2 3
      }, 1200)
      }
      y(i)
      }
      }
      x()

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

    I do small projects never feel like need to use Typescript...

  • @KAZVorpal
    @KAZVorpal 4 місяці тому +1

    These chapters are marked wrong.

  • @bloodylupin
    @bloodylupin 9 місяців тому +3

    I just rejected a project because they don't use Typescript. I can't understand why the hell you would use JS in production in 2024, especially working in team. It's just a lot of pain.

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

      With all the transpilers out there, coding directly in JS is just a risk.

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

    me writing tests after i've made the implementation with different test values :))

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

    Been looking for a video like this for a while!! And the answer is I would not

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

      What do you think about these questions? Good fit?

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

      Yeah they do!! I was interested in how to call functions without brackets!! And another thing I learned is they don’t ask very _real_ questions that would apply to real life!!

  • @stevebuonincontri6853
    @stevebuonincontri6853 2 місяці тому

    What are the problems you have using React?

  • @JS-zm5se
    @JS-zm5se 8 місяців тому

    Great

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

    I just realised that I failed my JS interview

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

    That's 7 JS questions

  • @KAZVorpal
    @KAZVorpal 4 місяці тому +1

    TypeScript does NOT help you, unless you're a bad programmer.
    The whole point of strong typing is that dim bulbs get confused with loose typing and write bugs they can't later find.

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

    Funny how you said that you don't do function composition or use it often when that's literally all you do with react. Interesting that people don't even know that.

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

      Yeah, it’s unintuitive for people, but everyone who uses anything in the JS ecosystem uses it all the time. I think it’s fine; knowing the details helps, but people get adequate intuition just from using things. Kind of like music theory.

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

      This is the problem with a language that relies too much on 3rd party libraries + frameworks to do things that should probably be built into the language. JS isn't even a real OOP language. Maybe it is nowadays, I'm not sure but when I started learning years ago, it was called "Object Based" rather than "Object Oriented". I guess TS makes it feel like OOP though. My point is that it is difficult for most devs to get below the surface of the layers and layers of libraries and frameworks so I think it is understandable if they don't know they are using something like "composition" in some project already.

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

      Yeah my point is it's not something I think about. React gives a structure for doing that. It's not a decision I make or think about.

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

    Nope, but I got the job anyway 😉

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

    The questions related to functional programming concepts need a deep dive slash correction. I'm gonna assume that you know the principal ideas, but you seem a little lost in the vid. Calling JS a functional language, confusing deterministic and pure, calling logging *not* a side effect and a closure a nested function would have you lose the interview big time with serious corporations. And you really have to know your TDD, or you ain't get hired (even if companies don't use it to the letter).
    These questions are meant for you to fall in the trap of subtleties between the functional world and the imperative world, and you fell for the trap with eyes wide open. If you want, you can contact me, and I'll help you get the facts straight in a follow-up video.

  • @gosnooky
    @gosnooky 9 місяців тому +22

    I've never, and will never consider JS to be a functional language. If you want functional, go with Haskell, Erlang, or Elixir. It has functional components to it as mentioned, but using JS in a pure functional way is restricting yourself from leveraging the full power of the language.

    • @demian.succs0
      @demian.succs0 9 місяців тому +6

      lmao

    • @danielcrompton7818
      @danielcrompton7818 9 місяців тому +1

      You can make functions in Javascript…?!

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

      What would consider JS then? A hybrid?

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

      @@kiranpillai876yes it’s multiparadigm

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

      Calling JS a functional language is a bit like calling myself a vegetarian just because I’m capable of eating a salad every now and then.

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

    13:32 So what are you trying to say?

  • @bellasvideo5620
    @bellasvideo5620 2 місяці тому

    Don't Do Cocaine please

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

    Damn, was hoping to see some fun nuances and idiosyncrasies of vanilla Javascript but was returned Typescript/React crap. Catfished.

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

      I guess businesses and hiring managers aren't interested in esoteric JavaScript nuances, rather they want developers who can build projects as a team.

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

      @@TokyoXtreme More like the illusion that they're hiring those that can. 10 years in the industry and every dev that's made an impression on me did so based on foundational knowledge. But I guess that article was probably directed towards juniors that are just task rabbits.

  • @iamtimsson
    @iamtimsson 3 місяці тому +1

    pls give questions first not answers thanmsks

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

    What a shitty list. All of the "functional" stuff has nothing to do with javascript, and makes numeruous unfounded assertions about the superiority of functional programming. (This is a fad by the way, later we'll here about how obect oriented is actually better).