Learning to write good vanilla javascript is an important building block for every developer in the web.
It's important to understand that JS runs on various environments, and while it started on the browser, it is now a ubiquitous language. Depending on the context, the you will given specific API-s to work with, which should not be
- Know what is special about JS (compared to other languages)
- Understand value types and references
- Understand the concept of closures
- Understand prototypical inheritance
- Understand passing callbacks, high-order functions and promises
- Be able to distinguish between the language API and context API (e.g.,
document.getElementById
is not part of the language, but only part of the DOM api)
- Value types
- Primitive value types
- Non-primitive value types
- Passing by reference
- Functions
- Scoping
- Function scope
- Block scope
- Function invocation
- Nested functions
- Shadowing
- Hoisting
- Closures
- Scoping
- What is
this
? - Prototypical Inheritance
- Object construction
Object.create
- Factory
Class
- Async code
- Event loop
- Timers
- Callbacks
- Promises
- DOM API
- Search elements
- Traverse
- Change attributes
- Create/clone/remove nodes
- Event listeners
- Implement
Roman Time
exercise - Reach Kyo 4 in Codewars