
Explore how let allows reassignment, how const raises an assignment error and enforces immutability, and how block scope confines let and const inside blocks.
Explore function declarations, function expressions, and arrow functions in JavaScript, including syntax, parameters, and return values, and compare hoisting behavior between declarations and expressions.
Explore arrow functions in JavaScript, illustrating parameter handling, implicit return, single-parameter shorthand, and why arrow functions lack the arguments object compared with regular functions.
Explore how ES6 classes use constructors as special methods invoked by new, turning a class into a blueprint with properties and methods, and how the this keyword accesses object properties.
Explore ES6 template literals to embed expressions with ${} and create multi-line strings using backticks, improving code readability and maintainability.
Explore how the this keyword behaves in arrow functions and how lexical this inherits context to make callbacks and timers reliable.
Explore the spread operator in JavaScript ES6, using three dots to copy, merge, and add elements to arrays and objects. Create shallow copies and update properties with concise, readable code.
Explore how the rest operator (three dots) groups remaining array elements or object properties into a new array or object, using destructuring with arrays and objects in ES6.
Explore array destructuring in JavaScript to unpack values from arrays into variables in a single step, including skipping elements, using the rest operator, default values, and handling nested arrays.
Object destructuring extracts properties from an object and assigns them to variables in one step. Master renaming, default values, nested objects, and the rest operator for remaining properties.
Master how promises empower asynchronous JavaScript with the promise constructor, resolve, reject, and the then and catch handlers. Grasp pending, fulfilled, and rejected states to manage success and failure.
Explore async and await in JavaScript to write asynchronous code that looks synchronous, return promises, and handle delays and errors with try/catch.
Explore JavaScript modules, exporting and importing functions, constants, and objects, and mix named and default exports to share data across app.js and main.js.
Learn how to create and use generator functions in JavaScript, yielding values and pausing execution. See how next resumes the generator, how for-of iterates, and how return signals completion.
JavaScript es6 is the language of the internet. Learning it has allowed many front and backend web developers to get jobs. Yet JavaScript’s newest features can be confusing and hard to understand.
In this course you will learn to deeply understand how newer JavaScript language features work under-the-hood, such as:
Block Scoping (let and const)
Templates
Classes
Arrow Functions
Symbols
Iterators and Iterables
Default Parameters
Rest and Spread
ES6 and beyond refers to features added to the JavaScript language in ES6 and ES Next. These features often will make your coding life easier, and are used by modern JavaScript frameworks, like React, Vue, Angular, and more.
As always, these topics will be covered with the focus on my core philosophy: "Don't Imitate, Understand". You won't try to learn by imitating the code I'm writing, but rather by deeply understanding how these language features work inside JavaScript engines. Deeply understanding means you will not only write better code, but also find it much easier to debug problems.
This course’s goal, then, is to help you have a deep understanding of JavaScript’s newest features. Through analysis of the inner working of the JavaScript engine, you can write code more confidentially and fix problems others find difficult.
It’s time for you to deeply understand advanced JavaScript concepts!
Happy coding!