
Master JavaScript foundations from variables, looping, functions and objects to execution, scope, closures, information hiding, and modular design pattern, by building a typing test app with a PDF certificate.
Explore how JavaScript powers the web with animations, interactivity, form validation, and asynchronous data loading, plus an overview of dom concepts and client-side frameworks.
Install Google Chrome to use the console for testing JavaScript and debugging. Install brackets as the editor and add extensions like auto save to automatically save files.
Create your first javascript program by embedding a script in an HTML page, use alert and console.log, and learn debugging, errors, and strict mode for future variable basics.
Learn how JavaScript variables act as containers to store and update data like a game score. Define a meaningful name and value, then retrieve and update it during execution.
Learn to declare and initialize JavaScript variables, reassign values with the assignment operator, and use console.log to view results; also explore constants with const and the undefined state.
Learn the rules for naming JavaScript variables, including starting with a letter, allowing letters, digits, and underscores, avoiding reserved keywords, and respecting case sensitivity.
Explore how creating and naming variables interacts with memory in javascript, including memory addresses, bytes, and bits, and how eight bytes (64 bits) fit into volatile memory.
Explore javascript data types by examining primitives, the console object, and using typeof to reveal a variable’s type. Understand 64-bit numbers, and how to find Number.MAX_VALUE and Number.MIN_VALUE.
Master arithmetic in JavaScript, including addition, subtraction, multiplication, and division of numbers stored in variables, with increment and decrement, compound assignments (+=, ++), and operator precedence.
Explore operator precedence in Javascript through practical examples: multiplication precedes addition, use parentheses to change the order, and observe how the ++ operator interacts with assignment.
Explore JavaScript arithmetic, mastering the remainder and exponent operators, the Math object for power, and how infinity, NaN, and string-to-number conversions work with parseInt and Number.
Apply basic javascript concepts by declaring variables, performing arithmetic, converting miles per hour to kilometers per hour, and formatting the resulting speed with toFixed in a uk speed camera exercise.
Learn how strings work in javascript, including quotes, escaping with backslashes, special characters and newlines, and concatenation, plus common methods like length, charAt, indexOf, and lastIndexOf.
Learn JavaScript string and number handling by prompting for first name, last name, and birth year, then compute age in 2040 and log a greeting with best wishes.
Learn booleans as a primitive data type that stores true or false and evaluate values with >, ==, and ===; understand how types affect equality and prep for logical operators.
Learn booleans and logical operators, using and, or, and not to combine conditions and negate values, and see how true and false results arise.
Explore operator precedence with booleans in javascript by evaluating false and true or true. And is executed first, then combined with or, showing that and has higher precedence than or.
Explore the JavaScript ternary operator by evaluating a condition such as x > 4 and returning one value when true and a different value when false.
Learn how logical operators use booleans and non-booleans, showing results depend on the second operand and how type conversion coerces values like numbers, strings, undefined, and empty strings.
Build a JavaScript program that prompts for five module marks, calculates the average to two decimals, and prints whether you pass based on four modules and a 60 average.
Discover null and undefined in JavaScript, seeing how uninitialized variables become undefined, that undefined is a primitive type, and how null can appear as an object under typeof.
Discover how JavaScript type coercion converts values between types during arithmetic and logical operations, producing results like string concatenation, NaN, and booleans, including undefined and null.
Explore JavaScript objects as collections of properties and values, learn to create, access with dot notation, modify and delete properties, and understand reference semantics that make objects differ from primitives.
Create and update JavaScript student objects with name and grade, calculate a two-decimal class average, and add extra points using plus equals to demonstrate object data manipulation.
Explore arrays as lists of elements you store in brackets, separated by commas, access by index starting at 0, and view their length property in this quick overview.
learn to build a cashier change calculator for a supermarket, computing change from amount due and amount paid and handling floating-point precision in uk currency notes and coins.
Explore conditional logic and loops in JavaScript using if, else, and else if to handle purchases and three speed-case conditions (under 40, between 40 and 70, over 70).
Master if statements in JavaScript by building a race time simulator that compares user input against world record times for male and female champions, using objects, prompts, and input validation.
Explore how switch statements in JavaScript compare a variable against multiple values to run code on a match, with a default case for nonmatches.
Build a JavaScript day-of-week switch example that prompts for a day of the week, converts input to lowercase, and prints a message using switch cases with default for unrecognized days.
Learn to implement for statements in JavaScript to print numbers 0 to 100, loop through arrays using indices, and modify values with i++, i--, and += 10.
Build a JavaScript hotel finder in London by creating a hotel array, iterating with for, and filtering by budget and distance, using parseFloat and handling zero, one, or multiple results.
Learn how to implement while loops in JavaScript, convert a for loop, prevent infinite loops, and simulate shopping with random item prices using Math.random and balance tracking.
Explore how do while loops differ from while loops, using the syntax 'do things while condition' to run the block at least once even if the condition is false.
Build a 24-hour schedule app in JavaScript that prompts for activities and durations, tracks remaining time, and prints the final schedule to the console.
Improve your cashier code by removing repeated blocks and redesigning it with a for loop over an array. Practice identifying loop contents and compare with the next video solution.
Store all note and coin objects in an array, then loop through it to access each element and its return property, improving readability and removing repetitive code.
Improve your cashier code by replacing for loops with a more efficient method to minimize unnecessary steps when making change, demonstrated with a £50 to £20 scenario.
Use a while loop to calculate change from 50 down to 10 pound notes until the change is zero, stopping early for efficiency over a for loop.
Explore the basics of functions in JavaScript, including declaration, naming, and calling to avoid code repetition. Learn about parameters, dynamic typing, and return values with examples like a sum function.
Learn to implement a calculate costs function in JavaScript to compute total costs from hotel price, stay duration, and ticket price, and assess budget viability.
Learn how JavaScript functions can return undefined, a value, or another function, and how to define and invoke a returned function with parameters using parentheses.
Master functions returning functions in JavaScript by building a museum greeting program that asks for language and name and outputs English or Spanish greetings, or an error for unsupported languages.
Explore how primitives are passed by value and objects by reference in functions, showing how changes inside a function affect originals, and why this distinction avoids bugs.
Pass values by reference in JavaScript by updating player objects with a votes function. Simulate Rafael Nadal versus Novak Djokovic, tally votes to 10, and display winner or no favorite.
Master how JavaScript treats all functions as first-class functions. Store them in variables, assign anonymous functions as object methods using this, and pass or return functions for composition.
Apply first-class functions in JavaScript by building a Mars invader robot with object methods to move in 3d coordinates (0–10) and check for mission completion.
Compare function statements and function expressions, showing how statements declare named functions with hoisting while expressions store anonymous or named functions in variables.
Master JavaScript function expressions by creating box objects with silver, gold, and platinum contents and prices per kilogram, then implement calculate box value and calculate total for three boxes.
Learn how immediately invoked function expressions work, compare function declarations and function expressions, and invoke anonymous or stored functions instantly to manage scope and returned values.
Explore recursion as a javascript design pattern by building a factorial function that calls itself to compute products, demonstrating how recursion replaces loops.
Explore recursion in JavaScript by modeling Fibonacci numbers with a honeybee example, implementing a parents function to compute generations and using a while loop to exceed 1000 grandparents.
Learn built-in JavaScript functions like alert, prompt, and log, and how they attach to the window global object; explore time helpers such as setInterval, setTimeout, and clearInterval.
Explore how JavaScript scope works, including global and function scope, parameter shadowing, execution context, and how hoisting and preceding lines influence variable resolution.
Build a train journey simulator in JavaScript using a stops array with minute timings, print times with setInterval, check stations, and convert departure times.
Implement a convert time function to format train times from Manchester to London as hours and minutes, with zero padding for single digits and handling edge cases.
Learn to build a program that determines if a number is prime, validating integer input, handling negatives, and identifying the smallest divisor when not prime.
Explore the prime number logic: numbers less than or equal to 1 are not prime, 2 is prime, and others are checked for divisors from 2 upward.
Prompt for a valid integer with a do-while loop, parse with parseInt, and check primality with an isPrime function using for and while loops with break on a divisor.
Promote a coding challenge that prompts for a whole number, counts primes smaller than that number, and displays them separated by spaces, using an isPrime boolean function and input validation.
Explore the logic of counting prime numbers in JavaScript, using an isPrime function and a counter to list primes below a user's number, then translate this logic into code.
Translate the previous video’s logic into JavaScript by building a printPrimes function that lists and counts all primes below a user-provided max, using a while loop and a prime-check helper.
Explore object literals in javascript by creating objects with curly-bracket syntax, defining string and numeric properties, and including methods as function properties, then access properties with dot notation or brackets.
Explore dot notation and bracket notation to access object properties, including using a variable to fetch a property and returning a random property.
Explore JavaScript objects by building a recipe object and a hack recipe function that increases ingredient quantities, using dot and bracket notation, and handling units like grams and milliliters.
Learn how JavaScript constructors create object templates with the new keyword and this, and how prototypes share properties and methods across objects.
Use the prototype to add methods and shared properties to a class, saving memory and execution time, and understand prototype inheritance as objects access prototype members when missing.
Practice building a hotel management app in JavaScript by creating a room constructor with capacity, price, and room number, and adding prototype methods info, book, and checkout.
Master a JavaScript hotel management demo by adding a change price method to the room prototype, creating rooms, and implementing hotel info and booking logic.
Add a check out method to hotel objects that takes a room number, loops the room array, marks the matching room as vacant, and confirms updates via hotel info output.
Explore how JavaScript compares primitives and objects, highlighting reference equality for objects and value equality for primitives, and why strings should be primitives rather than the String constructor.
Explore string objects and methods in javascript, including concat, includes, indexOf, and upper or lower case. Convert string objects to primitives with the string constructor and verify their types.
Explore a JavaScript ES6 activity that takes a name, extracts unique lowercase letters, and computes how those letters match animal names like tiger and sheep as percentages.
Write a calculate matches function that extracts letters from a name and returns an object with tiger, lion, sheep properties showing the percentage of matched letters, then JSON.stringify the result.
Learn to use the JavaScript date object to create current or custom dates, work with milliseconds since 1970, and derive the day of the week with getDay.
Explore how to create and manipulate date objects in JavaScript, using methods like get hours, get month, and get time to measure elapsed milliseconds in code.
Apply the split method to parse strings, build a weekly library schedule, and implement functions to determine today’s and tomorrow’s statuses using an index, days array, and modulus.
Learn to convert a schedule string into an open and close object with hours and minutes, then implement an is open function comparing current time to these times.
Learn to determine library status by comparing the current time with opening and closing hours using JavaScript if-else logic, handle tomorrow’s schedule, and format times with a zero-padding function.
Explore the JavaScript Math object, including Math.PI, Math.random, Math.round, Math.floor, Math.sqrt, and trigonometric methods like Math.sin and Math.cos, with practical circle and number rounding demonstrations.
learn how json represents structured data as javascript objects and arrays, how to stringify objects from a server, and how to parse json strings back into usable data.
Explore the global array objects in JavaScript, creating arrays by literals or the array constructor, and access or update elements by index while understanding length and deletion.
Explore essential JavaScript array methods: push, pop, shift, unshift, splice, slice, sort, reverse, map, filter, and every, and learn to manipulate arrays, apply functions, and filter elements.
learn to loop through an array with the built-in foreach method, passing a function to apply to each element, and contrast it with index-based for loops.
Build a JavaScript activity that generates a London-centered Europe tour, calculating driving distances and total distance. Create a distances object, a calculate distance function, and a shuffle-based route generator.
Implement a generate trip function that creates a random London itinerary by shuffling cities, adding London at start and end, and calculating and printing each leg's distance and total miles.
Learn the basics of the HTML document structure and CSS styling, including doctype, head, body, UTF-8 encoding, external stylesheets, selectors, blocks, and hyperlinks.
Explore building lists, tables, and forms in HTML: use ul and li, thead/th/td, and a post form with labeled inputs for email and password.
Style paragraphs with id and class selectors, applying orange to the first and last, and green to the middle. Wrap content in divs to control padding and font size.
Style a table with css, set font family from Google Fonts, borders, padding, and alternating row colors. Add images and iframes, and explore the document object model in JavaScript.
Understand the DOM as a nested structure of elements and text nodes, and use window and document to inspect and manipulate these elements with JavaScript.
Learn to access DOM elements by id, tag, and class with getElementById, getElementsByTagName, and querySelector, and to create, add text, and append new nodes to the document.
Explore accessing DOM elements with JavaScript by navigating siblings, next element siblings, first and last children, and parent nodes via IDs and queries, using paragraphs and lists as examples.
Access dom elements by id or class, change their content and attributes, and style them with JavaScript by modifying text content, colors, display, and position.
Learn to remove elements from the DOM by targeting a parent and using removeChild, then implement a generic remove method on the element prototype to handle removing any element.
Explore event handling in JavaScript by wiring click and double-click events, using on click and event listeners, updating paragraph styles, and adding or removing actions to create interactive web pages.
Click the title to start a sine-based animation that updates the title's top and left via setInterval. Learn about binding inside an object method and the upcoming event object.
Explore event objects that capture keyboard, scroll, and mouse events, focusing on key down and key up, and inspect properties like key, keyCode, and ctrlKey.
Learn how the event object works with mouse events, using pageX/pageY and clientX/clientY to position elements. Create butterflies on mouse up and track the cursor with fixed positioning.
Explore the scroll event in JavaScript by wiring an event listener, and compute scroll progress using pageYOffset, scrollHeight, and innerHeight. Understand how the viewport and page height determine progress.
Learn to attach a focus event listener to a text input, access the event target, and log the input value; explore blur as the opposite of focus.
Explore how to use the event object's preventDefault to stop a link's default action, and see how JavaScript can process forms without submitting the page.
Explore why JavaScript is single threaded, how code runs line by line, and how long tasks delay event handling like clicks in a single execution thread.
Master debouncing in JavaScript by using a mousemove event listener to log event.pageX and event.pageY with a 500ms setTimeout, cleared by clearTimeout to avoid memory issues.
Demonstrate event propagation in javascript by comparing bubbling and capturing, with nested elements and click handlers. Show how enabling capture changes handling order from outer to inner elements.
Learn how event delegation in javascript handles clicks on multiple paragraphs by attaching a single listener to their parent, using event bubbling, event.target, and nodeName checks to log content.
Learn to use jQuery, a powerful JavaScript library, to select elements by id, class, or name, manipulate styles and content, add or remove classes, and animate with fade effects.
Explore how JavaScript wraps code in an execution context, starting with the global execution context and the window object, and how this relates to global variables in the browser.
Explore the creation phase of the execution context and learn how hoisting moves variables to memory as undefined while function declarations are fully hoisted.
Explore the execution context in JavaScript, including the creation phase, hoisting, and global versus function execution contexts, and see how the execution stack manages function calls.
Explore how the creation phase and hoisting in JavaScript execution contexts determine precedence between function declarations and variable declarations with the same name, showing a function can override a variable.
Explore global and local scopes in javascript, demonstrate a function's local x using its own value over the global x, and explain primitives by value and the scope chain.
Explore the scope chain in JavaScript by tracing how variables are resolved across global and nested execution contexts, climbing outer environments, with hoisting and the creation phase.
Examine closures in JavaScript, learn how inner functions retain access to outer variables through the scope chain and memory, and see practical examples that illustrate closures and execution contexts.
Learn how closures update outer variables using kluges and get/set patterns in JavaScript. See how a captured make variable changes reflect in logs, illustrating global and function execution contexts.
Explore how to access and manipulate outer variables with closures, highlighting hoisting and execution contexts as a function returns and increments a captured value to yield 124.
Learn how closures fix a common JavaScript for-loop click issue by returning a function that logs the correct value for each button on click.
Explore how closures fix loop variable capture in JavaScript, using a for loop to push functions and log the correct index with event loops and setTimeout.
Create a run function that returns a closure cycling through an array by three steps, wrapping around with the remainder of division by the array length.
Explore encapsulation and information hiding in JavaScript by using constructors, prototypes, and default values, and implement setters and getters to control property access and improve memory efficiency.
Learn how closures hide private properties and methods in objects by using privileged methods and a constructor, with key checks for warranty, and understand memory trade-offs and prototypes.
Learn to use an immediately invoked function expression to create private static properties and methods, exposing a constructor with privileged methods that access them and enforce a two-phone limit.
This is Udemy's most comprehensive JavaScript course
Save $10000 compared to an in-person Bootcamp
Did you know that JavaScript is The number 1 web programming language in the world?
Did you know that Mastering JavaScript (basic and advanced) will make you a highly sought after web developer in the job Market?
"The Complete Modern Javascript Course with ES6" is your best asset if you want to become a professional JavaScript Developer in 2025.
What Students say:
"This course covers far more ground than any other JS course I've done. If you take this course you can start knowing nothing and finish with some really advanced knowledge, a professional standard application that can be used as a portfolio piece to present when applying for jobs and an appetite for more study.
I will buy any future courses from this tutor" Rob Masters
"This is one of the best javascript courses I have taken. The examples and explanations are clear and to the point.
What I really like about this course is that for each video, you can download the starter code as well as the completed code. Open the starter code in the code editor and you can follow along with the instructor as he completes the topic. If you have a problem, you can always open the completed code file that is included to see where you went wrong.
I look forward to more courses from Development Island." Steven Wellman
"Fantastic Course..!
Issam’s teaching method is very clear and concise. He builds concepts from the ground up to the advanced very smoothly and steadily.
The Typing Speed App is huge and consists of many advanced techniques to explore.
I’ve already taken Issam’s “Complete Web Development Course - Build 15 projects”. Both his courses are amazing and suited for all levels. There’s always something to learn even if you are an advanced students.
Taking both of his courses are the best thing ever happened to me in my Web development learning experience.
HIGHLY RECOMMEND TO ANYONE…!!" Rapto Sunni
"Very comprehensive course that takes you thru every step of the JavaScript language, then leads you to and thru a practical professional project" Konan Houphoue
Is this the course for you?
Whether you have no programming background, or you have some experience with JavaScript, but admit that you struggle with advanced JavaScript coding or feel intimidated when you come across “weird” JavaScript concepts like: Closures, Encapsulation or IIFE, this is the course for you!
This course follows a robust structure and a result driven approach based on “learning by doing” which helped our students secure web development jobs in the past. It is the most Comprehensive JavaScript Course in the Market. With 21 highly structured sections distributed over 37 hours of content and 302 lectures, including crystal clear presentations, detailed explanations, coding challenges and a full professional real life project.
In this course, you will go from a beginner to a job ready JS Developer. I will prove to you that concepts like closures, hoisting, IIFE, encapsulation, … are as easy as drinking a glass of water. And you will gain so much power you will use those "weird" concepts to build a fully functional ~10h Typing Test App which will make you proud of yourself.
This is what you get:
1- Friendly Direct Support from the instructor as well as the active community in the Q&A area.
2- Illustrative Graphics used to explain advanced topics (as if you were 5 :) ).
3- All source code used in the videos.
4- Code as you Go when building the Mega Professional Project so that you never get lost. I developed this new concept based on students feedback.
5- A step by step methodology where I teach you the logic of things and how to think before diving into writing code. This is what today's employers and clients are looking for and value the most!
6- Super strong foundations which will prepare you to learn JS frameworks after you finish this course: AngularJS, React, Node.js, etc.
7- A deep focus on Object Oriented Concepts you would very rarely find in online JS courses (Class Augmentation, Object Cloning, and much more)
8- Highly respected Experience building a Full Advanced Javascript Application which you can customise and add to your CV.
9- A comprehensive covering of Modern JavaScript using ES6.
10- Extra content added at no extra charge (extra applications, …)
I am confident that you will enjoy this course! I also offer you a full money back guarantee for 30 days. So this is an absolute no-brainer!
So what are you waiting for? Enrol in Udemy's most comprehensive JavaScript course today.
See you in the course :)