💻After listening to the most recent Syntax.fm podcast detailing the Fundamentals of JavaScript, I realised I needed to learn brush up! It is a damned good episode and well worth a listen->->-> Syntax.fm show 162.
I’ve made myself a bit of a checklist here and wanted to share in case anyone else would find it remotely useful. Please feel free to add/correct any of the below via PR. As I go through and delve into all of these things, I will be linking to the resources I find most useful for getting to grips with these fundamentals. Similarly, feel free to suggest your own 😄
Know your var from your let from your const! Know the scope of each and when to use them.
Understand where and when variables are available to you based on when they have been created and used. The differences between block and function scope. How the scope lookup works.
What are the seven types of value available to you in JavaScript?
What are the different types of function, how are they used and why? Understand the scope that comes along with each. Know the difference between a function and a method as well as how they interact.
Understand how the raw dom works and practice interfacing with elements via JS. Know the difference between a node and an element.
How does it work and know what “this” is equal to at any given point.
Know how events work in real-world use cases. Know the use of Click, Mouse, and Pointer events. Try dispatching your own custom events.
How and why do those work.
Understand arrays themselves, and how to manipulate them. Push, pop, slice, splice. Have a good grasp of when to change an existing array and when to create a new one, as well as when to use an array vs object. Mutation vs immutability in general is good stuff to know!
Knowing how to order and condition things properly and efficiently is key! You need to know about the different ways of Looping and how they work.
Know how these differ from true and false and the use cases for each.
You want at least a basic understanding of how domains are communicating and what they have reciprocal access to, as well as API requests, headers and responses. Gain a good foundation into accessibility so as not to accidentally exclude a valuable portion of your users!
Know at least Import, export and named vs default. Understand that modules have their own scope and can share data from one to another.
What is a closure? What they do? And why they might be useful?
Know how to obtain data from an API, parse it, and use it via JSON or GraphQL.
You should be able to explain what it is, how, and why it is used.
Have a decent repertoire of best practices in clean code to underpin and supplement all your new-found JavaScript knowledge!