
Master course navigation with lecture decks, diagrams, and practice videos; tackle two-video challenges with task and solution demonstrations; use video player controls for speed and quality in full hd.
Please download exercise files attached to this lesson
Challenge 4 on hoisting by fixing a reference error caused by a variable C being scoped inside an if statement, ensuring C is defined appropriately outside.
Replace the if-else with a ternary operator in the is number function, returning the number for numeric inputs; otherwise, that's not a number, with tests for numbers, strings, and booleans.
Rewrite anonymous functions as arrow functions, using fat arrow syntax with empty parentheses for no parameters. Demonstrate setTimeout callbacks, implicit return for single statements, and logging results to the console.
Explore how missing parameters affect JavaScript functions and how to use default parameters to handle calls without arguments, including a square function that throws when no argument is provided.
Practice array destructuring and rest operator by assigning elements to a, b, and c, and log the results, with c as an array from 3 to 7.
Apply destructuring with a left side array and the rest operator to assign remaining elements to an array. The example demonstrates swapping A and B and validating results in console.
Master the spread operator to combine arrays a, b, and c with a number d into a new array and log the result to the console.
Learn how to copy an array of three elements and add a new element, practicing array manipulation in JavaScript while ensuring console.log outputs match the expected results.
Copy arrays by assignment shows that arrays are reference types, so A and B share data; use slice or spread for shallow copies, and JSON.stringify/parse for deep copies.
Iterate over a string to count lowercase vowels within an input array of labels, returning the total vowel count for the given string.
Practice swapping two variables using only those two, so that a becomes the second value and b becomes the first, then log the results to the console.
Swap values of two variables in JavaScript using destructuring by mapping a two-element array to B and A, then run the terminal to verify the solution.
Explore challenge 18 on classes, using es6 features to create and access objects named apple and orange, and implement a function with a lock to mute console output.
Compare function constructors and prototypes by building apple and orange fruits with a price info method. Then convert to class syntax that combines constructor and prototype methods.
Learn to iterate over an object using for-in, access fields with square bracket syntax, sum numeric values, and filter to own properties to avoid prototype pollution, yielding 42.
In this course, you will dive into exciting JavaScript challenges designed to sharpen your problem-solving skills and deepen your understanding of core JavaScript concepts. Each challenge consists of a task and solution, where you will either fix existing code or write additional logic.
I will walk you through every line of the solution, explaining how JavaScript works behind the scenes. By the end of the course, you won’t just memorize syntax—you’ll think like a JavaScript developer.
Topics covered:
• Destructuring – Efficiently extract values from arrays and objects.
• Array helper methods – Master map(), filter(), reduce(), and more.
• Variable hoisting – Understand how JavaScript moves declarations.
• Let, Var, and Const – Learn which one to use and when.
• Rest and Spread Operators – Simplify array and object manipulations.
• Ternary Operator – Write cleaner, more concise conditionals.
• Default parameters – Handle function arguments effectively.
• Closures – Unlock the power of function scope.
• IIFE (Immediately Invoked Function Expressions) – Execute code instantly.
• Classes – Leverage modern JavaScript object-oriented programming.
At the start of the course, you’ll get source files for all challenges, including both the starting point and final solutions. Simply open the “start” folder, begin coding, and follow along as I guide you through real-world scenarios.
By the end of this course, you will be confident in solving JavaScript challenges, writing clean and efficient code, and applying these concepts in real projects.