I’ve been writing JS for a couple years now professionally and I felt/feel fairly confident with it. Hell, I even teach a class on weekends at a bootcamp going over the basics of JS. So there I sat, on the phone with a much more experienced dev, getting bombarded with all those questions you can expect in a technical interview: ‘What’s `this` in JS’, ‘Give me an example of prototypal inheritance’, ‘Explain some random concept that will almost certainly never affect you in a real world situation.’ You know, typical stuff.
For the most part, I felt pretty decent about my answers, even though I had more trouble articulating my answers than I would have liked (I was on speaker while driving with a particularly drunk friend as my passenger… don’t judge me). Everything was going splendidly, until he probed a little further on a few of our question: ‘Well, why does that happen,’ he asked. Oh shit. Well, it just fucking does, I mean, I’ve seen that shit like a 100 times. I realized I know less about how JS works in some situations than that it just has in the past and will in the future.
That’s not good enough.
Sure, part of me protested these types of questions: when you’re writing code, it’s seldom you dig deep into the concepts or ‘under the hood’ functionality of that object constructor you’re using or what reduce is really doing to your array. But, I think knowing what’s going on behind the scenes and the logic that fulfills your expectations when you write a function with a closure can only help you to be a better developer and reduce your reliance of just seeing what happens when you write a function/object/array/reducer/class/or use `this`.
Thank Bob I work with some smart motherfuckers who actually took the time to write down all those pesky JS concepts along with some great examples. So get your ass some knowledge you won’t find in college (well, maybe you could but I couldn’t pass up that dope ass rhyme) and check this out.