The difficulty is that many tech employers ask questions in their interviews that evaluate your comprehension of JS. When an applicant understands just enough to get by but lacks a thorough understanding of the language, it becomes obvious fast.
In web development interviews, there are a few themes that are usually asked about. This assumes you’re already familiar with the fundamentals, such as loops, functions, and callbacks.
- Understanding the difference between value and reference — Learn how objects, arrays, and functions are copied and passed into functions. It’s important to understand that the reference is what’s being duplicated. It’s important to remember that primitives are copied and passed by copying the value.
- Understanding that variable and function declarations are hoisted to the top of their accessible scope is important. It’s important to remember that function expressions aren’t hoisted.
- Closures — Keep in mind that a function keeps access to the scope in which it was created. Know what data hiding, memoization, and dynamic function generation are possible with this.
- this — Be aware of the binding’s rules. Understand how it works, how to calculate what it will equal in a function, and why it is useful.
- new — Understand how it relates to OO programming. Find out what occurs when you call a function with new. Understand how the object created with new inherits from the prototype property of the function.
- Know how each of these functions works: call, bind, and apply. Know how to put them to good use. Know what they’re going to do with this.
If the links provided aren’t enough, there are a plethora of more resources available to assist you in learning these ideas.
Here are some materials that I have read or watched and can suggest.