JavaScript¶
Core¶
- Variables & Data Types
- Variable Hoisting
var
,let
,const
- Functions
- Function Declarations vs Expressions
- Scope & Closures
- Function Scope, Block Scope
- Closures
this
- DOM
- DOM Manipulation
- Event Handling
Intermediate¶
- Prototype Chain
- Async Programming
- Callbacks
- Promises
- Async/Await
- JavaScript Event Loop
- ES6+ Features
- Arrow Functions
- Destructuring
- Spread & Rest Operators
- Error Handling
try/catch
- Custom Errors
Advanced¶
- Advanced Closures
- Advanced
this
Binding call
,apply
,bind
- Inheritance & Prototypes
- ES6 Classes
- Inheritance Patterns
- Memory Management
- Garbage Collection
- Memory Leaks
- Performance Optimization
- Throttling & Debouncing
- Design Patterns
- Module Pattern
- Singleton Pattern
From list of david¶
JS¶
- [X] Execution context, especially lexical scope and closures.
- [X] Hoisting, function & block scoping and function expressions & declarations.
- [X] Binding – specifically call, bind, apply and lexical this.
- [X] Object prototypes, constructors and mixins.
- [ ] Handling asynchronous calls with callbacks, promises, await and async.
- [ ] Composition and high order functions.
- [ ] Event delegation and bubbling.
- [ ] Type Coercion using typeof, instanceof and Object.prototype.toString.
- [ ] When to use function declarations and expressions.
DOM¶
- [ ] Selecting or finding nodes using
document.querySelector
and in older browsersdocument.getElementsByTagName
. - [ ] Traversal up and down –
Node.parentNode
,Node.firstChild
,Node.lastChild
, andNode.childNodes
. - [ ] Traversal left and right –
Node.previousSibling
andNode.nextSibling
. - [ ] Manipulation – add, remove, copy, and create nodes in the DOM tree. Know operations such as how to change the text content of a node and toggle, remove, or add a CSS classname.
- [ ] Performance – touching the DOM can be expensive when you have many nodes; know about document fragments and node caching.
Optimization¶
Reference: - Preparing for a Front-End Web Development Interview in 2017