Course Description
This courses focuses on many concepts such as apply/call/bind, prototypes, closures, promises, async/await, IIFEs, etc. which are essential to becoming an expert JavaScript developer. In addition, you will learn how to apply these concepts in real-world projects and publish your own library on npm.
Module 1: Overview
- Overview of the program and the topics covered
Module 2: ES6 Syntax Refresher
- Arrow functions
- Default params
- Template literals
- Implicit returns
- Spread syntax
- Destructuring
- Array methods
Module 3: Lexical Context, Closure and Hoisting
- JavaScript global environment and the global object
- Functions and variable context/scope
- Functions invocation and execution stack
- Hoisting tips and tricks
Module 4: JavaScript Objects, Classes and Inheritance
- Difference between a function and an object
- Classes old way vs. new (much easier) way
- Inheritance and why bother
Module 5: Apply, Call and Bind
- apply/call/bind what and why
- Alternative to apply/call/bind
Modules
- Module 1: Overview
- Module 2: ES6 Syntax Refresher
- Module 3: Lexical Context, Closure and Hoisting
- Module 4: JavaScript Objects, Classes and Inheritance
- Module 5: Apply, Call and Bind
Learning Outcomes
- Write elegant JS code with ES6 syntax for use in web apps, node backend, or lambdas.
- Learn several approaches to writing asynchronous JavaScript that can be leveraged to call APIs or long running functions without freezing the app.
- Advanced concepts such as promises, async/await, apply/call/bind and frequently used design patterns for writing performant, bug-free, and maintainable code.
Prerequisites
- Basic understanding of JavaScript and experience using it for developing web applications
Who Should Attend
- You already have an understanding of JavaScript basics with some practical experience.
- You want absolute clarity on advanced vanilla JavaScript concepts so you can focus on learning modern web frameworks without getting lost.
- You want to develop and publish your own open-source JavaScript libraries.