This & GlobalThis
The reason we got “globalThis” is because in the browser global is the “window”, in NodeJs it is “global” and inside workers its “self”. What a mess right?
The “this” can refer to the instance of an object or class. It also changes depending on how a function is called. It is the context where you are and also changes when you are in strict vs non-strict mode. Need more reason to truly try to master it?
After you master Objects you must master Class which are just objects and a constructor function under the hood.
Scope & Closure
For me, scope is about creating boxes and closure is just a special box. I actually created a video trying to explain it. Let me know what you think?
Understanding scope will help you create code that works together and closure is just a powerful tool you should use if you like the idea of encapsulation and functional programming.
This is a huge topic but I could not do the things I do today and understand how things on the web are created without understanding Data Structures.
Understanding Data Structure is what gives you the Engineer mindset. It is a piece of knowledge that truly makes you stand apart from other developers.
Single Thread, Non-Blocking, Asynchronous, Concurrent
I actually read a good article on this but I recommend you to truly research the title of this section and make yourself acquaintance with the language.
Promise & Async Await
You can do anything with function and the tricks related to functions are just endless. If you like functional or any other declarative style programming you must Master functions.
This is the basis of any language. Learning how things work step by step will allow you to put together simple to complex algorithms that will allow you to create more complex programs.
Control flow is understanding how things are executed step by step and how it affects the structure. It will help you debug and understand any application quickly even if you did not write it.
Fetch & Ajax
At some point you will need to make requests and dealing with data fetched over the network is an essential skill especially now that data is a huge part of any application.
Knowing your way around using the fetch or XHR API will come in handy but you are not limited to native APIs like these. The goal is to know your way around data fetching over the network in your application.
At some point, you will have to deal with huge data load or applications that rely on a lot of data.
Your way of becoming a pro is in these little parts. Mastering each little by little with a whole lot of practice.
It won’t matter if you just read about it. You must try it over and over in as many different situations as possible.
Best of luck!