If you are comfortable with a lot of reading and want to get deep into JS, then eloquentjavascript.net is a good option. However, it can take a lot of time to finish the entire book.
Hence, you could javascript.info and w3schools to get a quickstart.
You can also refer to this youtube video or refer any source that works well for you such as ApnaCollege and GeeksforGeeks.
Do check out the entire left-side tab in w3schools as it has many different section for the various topics that are there in JS. You need not cover all of them. The most important things to focus on would be:
- JS Basics
- Defining variables of various datatypes
- Using comments
- Basic built-in methods (Math.floor(), etc.)
- Types of operators
- Arithmetic Operators
- Logical Operators
- Shorthand Operators (+=, *=, /=, etc.)
- Ternary Operator ( condition ? true_val : false_val )
- Types of functions
- Regular functions
- Function expression (function assigned to variable)
- Arrow functions
- Immediately Invoked Function Expression / Auto-invoke function
- Generator functions (optional)
- Loops
- for
- while
- do... while
- for... in
- for... of
- forEach
- Types of data structures
- Arrays
- Classes & Objects
- JSON
- Error Handling
- try-catch-finally
- DOM Manipulation
- Creating, finding, and deleting HTML elements
- Styling HTML elements using scripts
- Handling Events (onclick, hover, etc.)
- Event Propagation
- String Manipulation
- String templates & string interpolation
- Escape characters
- String methods
Note: Cover the most commonly used string methods such as length, slice, substring, trim, pad, replace.
- Regular Expressions (eg. using regex for form validation)
- Asynchronous Programming
Note: Refer to resources on 'Javascript Eventloop' to get a better understanding on asynchronous programming
- Callback functions
- Promises
- async functions
- fetch() (eg. calling open APIs and presenting the data)
Some things that you may miss but shouldn't:
- Destructuring objects
- Optional chaining (?.)
- Spread operator
- Date()
- map(), filter(), reduce()