
Explore a two-part approach to JavaScript: a beginner-focused introduction covering basics, DOM manipulation, events, arrow functions, and promises, then project-based modules with Node, Express, and creating your own database.
Explore how JavaScript evolves through the ECMAScript specification and the TC39 committee, and understand how browsers implement features differently, with examples like arrow functions and browser compatibility.
Install Chrome or Firefox as your web browser and use Visual Studio Code, a free editor from Microsoft, with extensions and color themes, to follow the course setup.
Explore MDN, the Mozilla Developer Network, as a practical JavaScript reference and learning resource. It's not an official standard, but a comprehensive guide for features and arrays.
Learn JavaScript primitive types—numbers, strings, booleans, null, undefined, symbol, and bigint—and how to declare variables with let, const, or var, plus template literals.
Run code directly in the Chrome JavaScript console to experiment quickly, and compare it with writing files for debugging small examples rather than large applications.
Explore how JavaScript uses a single number type for integers and decimals, learn about precision limits, and practice basic operations, modulo, exponent, and order of operations.
Explore NaN and infinity in JavaScript, showing how NaN arises from not a number and how infinity, -infinity, and -0 are represented.
Explore order of operations, modulo, and exponentiation through a three-question quiz, showing results like 4.5, 16, and not a number for zero divided by zero.
Learn how variables store and recall values with the let keyword, update values via assignment like age = age + 1, and follow camelCase naming while avoiding re-declaration.
Learn how to update a score with assignment and shorthand operators like += and *=, and use unary operators like ++ and -- to increment or decrement a counter.
Const defines values that cannot be reassigned, unlike let; use const for constant labels such as pi or days in a week and for arrays and objects.
Explore the legacy of var in JavaScript and compare it to let and const, highlighting scope differences and why modern code favors let and const over var.
In a variables quiz, egg count stays 42, rating remains 7.5 due to const, wind speed ends at 80 after updates, and the minor issue is snake_case instead of camelCase.
Explore booleans as the true or false primitives in JavaScript, and learn how they drive logic, while noting that variables can change type.
Learn strings as JavaScript's textual values defined with single or double quotes, keeping quotes consistent, and use the plus operator to concatenate first and last names into a full name.
The lecture explains string indices, length, and immutability in JavaScript, showing how to access characters by index, handle undefined, and compute the last character with length minus one.
Explore string methods as built-in actions on strings, including to uppercase, to lowercase, and trim, and learn how strings are immutable and chained calls return new results.
Explore and apply common JavaScript string methods, such as indexOf, slice, and replace, with one or more arguments, learning behavior, case sensitivity, immutability, and how to handle not found results.
The modern JavaScript bootcamp course presents a strings quiz that covers concatenation, index of, trimming, lowercasing, uppercase, slice, and replace, with console evaluations.
Master string escapes in JavaScript by using backslashes to include quotes and other characters inside strings, and learn escape sequences like backslash n, backslash t, and double backslashes.
Learn how JavaScript template literals use back ticks and dollar sign curly braces to interpolate variables and expressions, making readable, reusable strings without plus concatenation.
Define null as the explicit absence of a value you set, and define undefined as a value for an unassigned variable. Contrast with examples like a login state and missing data.
Explore the math object in JavaScript, a collection of functions and constants like pi and e, and learn how math.random generates 0–1 decimals you scale with floor to 1–10.
Use the typeof operator to determine a value’s type in JavaScript. It returns strings like number, boolean, or undefined, and typeof null yields object, a known quirk.
Learn how parse int and parse float convert strings to numbers, extracting integers or decimals, manage spaces, and handle edge cases like currency symbols in form data.
Explore how JavaScript uses logic and branching to make decisions, with examples from a chess game, Netflix sign-in, and form validation; learn about comparison and boolean operators and conditional statements.
Compare values in JavaScript using greater than, less than, and their inclusive forms to produce booleans, while understanding string and Unicode ordering and the difference between equality and strict equality.
Compare the double equals and strict equality operators, including not equal variations, and learn how type coercion can make values like zero, empty string, false, and null behave unexpectedly.
Master the strict equality operator by using triple equals to compare both value and type, avoiding type coercion from double equals, and apply strict non equality as well.
Learn to run JavaScript from scripts rather than the console by creating js files in VS Code and HTML, using console.log. Explore the ripple read-evaluate-print loop and debug with console.error.
Explore conditional statements in JavaScript, starting with if, else if, and else, using boolean expressions and operators to decide which code runs, with examples on ratings and even/odd via modulo.
Discover how else if works in JavaScript conditionals by chaining multiple branches that run only when previous conditions fail, and see how else finalizes the decision with example ratings.
Learn how if, else if, and else control flow handles valid ratings and invalid inputs, using template literals and console output to display high score messages and player feedback.
Nest conditionals inside each other to validate inputs like passwords using if, else if, and else blocks. Check length and spaces with indexOf, and use combined condition to reduce nesting.
Explore truthiness and falseness in JavaScript by examining how values like numbers, empty strings, null, undefined, and not a number evaluate as true or false in conditionals.
Learn how to use logical operators and, or, and not to combine boolean expressions, with examples like valid passwords and numbers between one and ten.
Discover how the or operator (||) in JavaScript returns true when either side is true, based on truthiness, with examples like free admission for under six or over 65.
Master the not operator, learning how the exclamation point negates expressions and flips true and false, with examples like null, zero, empty string, and not logged in user.
Master operator precedence in JavaScript, where not, and, or determine evaluation and parentheses control the order. See how x=7, x=3, and x>10 illustrate the effect.
Learn how to use the switch statement in JavaScript to map a single value to multiple outcomes, compare with if-else, and understand breaks, defaults, and readability.
Explore the JavaScript ternary operator as a compact if-else, using a condition, a question mark, and a colon. See online offline status turn red or green with one line.
Explore arrays as ordered collections of values in JavaScript, learn array literals, initialize with mixed data types, and understand how to access length and create empty arrays.
Learn that arrays are indexed like strings with zero-based indices and a length property. Use square brackets to access items, and note out-of-bounds access yields undefined.
Learn how arrays are mutable by changing elements at a given index, unlike strings. Use the array length to append items at the end and prepare for an end-adding method.
Push and pop are the first two of four common array methods for end modifications; push mutates the array and returns the new length, while pop returns the removed item.
Explore how array methods modify the start of an array, including multi-value insertions and their effect on order. Compare these with push and pop that modify the end.
Learn how to merge multiple arrays using concat to create a new array without mutating the originals, with the order of inputs determining the result across fruits, veggies, and meats.
Explore two built-in JavaScript array methods, includes and indexOf. Includes returns a boolean; indexOf returns the position or -1, and both support a from-index option, demonstrated with an ingredients array.
Explore reverse, which mutates the original array in place by reversing its elements, and join, which converts array elements into a single string with a customizable separator.
Explore the slice method to copy a portion of an array into a new one without modifying the original, using a start index and an exclusive end index.
Explore how splice modifies arrays by specifying start index, delete count, and optional insertions to insert, delete, or replace elements in the middle of an array.
Explore how the array sort method sorts in place and returns the sorted array, revealing its default string-based comparison and the need for a compare function for numeric sorting.
Explore how reference types differ from primitive value types in JavaScript, with arrays and objects storing memory references instead of values, and see how changing a value updates another variable.
Explore how arrays are reference types and how const keeps the reference fixed while allowing internal changes, such as push or pop, without reassigning a new array.
Master nested arrays by storing arrays inside arrays, accessing and updating elements, and modeling grids like tic tac toe or Rubik's Cube with two dimensional arrays.
Explore why arrays fall short for grouped health data and learn how objects use key‑value pairs and properties to group and access information, with a dictionary metaphor.
Create objects with curly braces using object literals and assign key-value pairs. Access properties with dot syntax and understand comma placement, single-property trailing comma rules, and keys converting to strings.
Learn how object keys become strings, including numbers turning into string values, and when to use dot notation or square bracket access for dynamic keys and invalid identifiers.
Add and update properties in an object using dot notation or square brackets. Assign initial values with the equals sign and update, using plus-equals or increments, in the reviews object.
Explore how to nest arrays and objects, access data with dot notation, and model real-world structures like student records, shopping carts, and tic-tac-toe boards.
Discover how arrays and objects are reference types, with variables storing references to memory and mutating contents through the same object while keeping the reference fixed with const.
Demystify equality in JavaScript by comparing arrays and objects through reference vs contents, explain strict equals and double equals, and show when length-based or element-by-element checks are needed.
Learn looping in JavaScript, including for and while loops, avoid infinite loops, and iterate over arrays and objects with practical examples like game loops and rendering posts.
Learn how to implement for loops in JavaScript by defining an index, a condition, and an update, with practical examples from counting up to ten, printing results, and generating squares.
Learn how infinite loops occur in for and while loops, identify bad ending conditions, and apply safer strategies using proper greater-than or less-than logic to avoid unresponsive browsers.
Iterate over strings and arrays using for loops by generating indices, accessing elements, and printing or computing values, including handling objects with names and grades and calculating averages.
Explore nested for loops with an outer and inner loop, sum a 4x4 game board into a total score, and examine scope and clear variable naming with i and j.
Explore the while loop in JavaScript, including its syntax and condition-driven execution. Compare it to a for loop when printing numbers 0 through 5 and discuss initialization and scope.
Learn when to use while loops instead of for loops, illustrated with a random number guessing game that runs until the target is hit, and how to update guesses safely.
Explore how the break keyword exits loops in JavaScript, including for and while loops, its behavior in nested loops, and how to replace infinite loops with clear break conditions.
Watch how the for...of loop simplifies iterating over iterables like arrays and strings, replacing index-based for loops and improving readability, even though it isn't supported in Internet Explorer.
Explore when to use for...of versus a traditional for loop, with examples of a 2d magic square and indexing requirements, showing how for...of simplifies iteration but can lose index access.
Learn how to iterate over objects by using Object.keys and Object.values, access values with bracket notation, and compute an average from the ratings.
Learn how for...in loops iterate over object keys while for...of loops traverse values in arrays and strings, with jeopardy winnings and totals, and why for...in with arrays is discouraged.
Explore the central role of functions in JavaScript, learn how to define and execute them with function declarations, understand syntax, and see practical examples of built-in methods and custom functions.
Create a roll die function that generates a random 1 to 6 with Math.random and Math.floor, then call it from a throw dice function to roll multiple times.
Discover how function arguments become inputs that shape a function's output, with examples like greet and roll die. Learn about parameters, passing values, and how inputs affect behavior in JavaScript.
Define functions with multiple parameters and pass multiple arguments, and distinguish parameters from arguments. Learn how parameter order matters and how undefined arises when an argument is missing.
Explore how the return statement provides values from functions, contrast printing with console.log versus returning, and learn to capture return values in variables or pass them to other functions.
Explain how return statements end a function and stop subsequent code, refactor boolean returns, and use a loop over an array to perform a case-insensitive check for purple or magenta.
Practice building a boolean function is valid password that returns true or false, and checks length, spaces, and username containment to validate a password against a given username in JavaScript.
Define a function average that accepts an array of numbers. Sum the elements with a loop, then divide by the array length to return the average.
Learn to implement a pangram checker in JavaScript by writing a function isPangram that returns true if a sentence contains every letter a to z, case-insensitive.
Implement a get card function that returns a random card object with value and suit, using a reusable pick function to select random elements from value and suit arrays.
This lecture explains function scope and variable visibility in JavaScript. It shows how let, const, and var define scope and access inside and outside functions, with examples of separate contexts.
Explore block scope in JavaScript, showing how let and const are confined to blocks such as conditionals and loops, unlike var which remains function scoped.
Explore lexical scope in nested functions, showing how inner functions access variables from outer scope, such as movie variable, and how this pattern applies to to-do list components in React.
Explore function expressions, compare them with function statements, and learn how functions become objects stored in variables, enabling passing, storing, and naming in JavaScript.
Learn how functions act as values in JavaScript by storing them in arrays and objects, then prepare for higher order concepts like functions within functions and accepting functions as arguments.
Explore higher order functions in JavaScript by passing functions as arguments and returning functions, with patterns like call twice, repeat end times, and pick one.
Explore higher-order functions that return new functions, creating function factories like multiply by n and make between functions to check ranges, using lexical scope and function expressions.
Learn how callbacks work: functions passed into other functions and invoked within them, including anonymous callbacks for one-time use and common patterns like set timeout and event listeners.
Explore how hoisting affects variable declarations var, let, and const, and compare function declarations with function expressions to understand undefined values and initialization.
Learn to use array callback methods like map, filter, find, reduce, some, and every in JavaScript, passing a function to each element and using arrow functions.
Learn how the forEach array method calls a callback on every element, supports anonymous or named functions, optionally uses the index, and can print object titles in uppercase.
Explore how map creates a new array from an existing one by applying a callback, returns values without mutating the original, with examples like doubling numbers and extracting titles.
Master arrow functions, a compact anonymous syntax for JavaScript function expressions. Learn when to omit parentheses for one parameter, include them for multiple, and use empty parentheses for zero.
Explore implicit returns in arrow functions, using one-line expressions with optional parentheses, and when to omit the return keyword. See map examples and a parity list with the ternary operator.
Explore array.find, which calls a callback on each element and returns the first element for which the callback is true, stopping after the first match and not mutating the array.
Explore the filter method, using a callback test function that returns true or false to build a new array without mutating the original, such as odds or high-rated fantasy books.
Learn how the boolean array methods every and some work: every requires all elements to pass a boolean test, some returns true when any element passes, with practical examples.
Explore how JavaScript's sort defaults to string ordering and use a compare function to sort numbers ascending or descending, and slice to prevent in-place mutation when sorting books by rating.
Reduce is a built-in array method that reduces an array to a single value via a callback with an accumulator and current value, enabling sums, products, or maxima.
Explore advanced reduce patterns by tracking max and min values in an array, using an initial value, and comparing current values with the accumulator to shape results.
Apply reduce to tally yes and no votes into an object with an empty accumulator, then group books by rating using floor rating keys and rating arrays.
Always bet on Javascript!
For years, top recruiters in industry have hired fresh engineers based solely on their knowledge of Javascript. If you want to get a programming job, this is the language to learn! But learning Javascript is complicated! There's fancy syntax, weird design patterns, and a billion resources online that might be giving you wrong - or even be out of date - information.
We built this course to solve your problems. This is the best and most up-to-date resource online for becoming a Javascript professional as quickly as possible. Every minute of this course has been created with one goal in mind: teaching you how to become a great engineer.
The Modern Javascript Bootcamp focuses on cutting through unnecessary information and giving you just the facts, plain and simple. You won't work with outdated frameworks, learn old styles of programming, or build boring apps. Instead, you'll only spend time writing practical code that can be used today and in the future on your own projects. You'll learn - from very early on in the course - how to write beautiful and reusable code that you'll be proud to show to a future employer.
Two of Udemy's greatest instructors - Colt Steele and Stephen Grider - collaborated to create this course. Between the two of us, we have taught over one million engineers how to program. Rest assured, you will be learning from the best. We know how challenging it can be to understand a new programming from scratch, so we designed this course to offer you a step-by-step, guaranteed approach to becoming a Javascript master.
___ Course Structure ___
This course is divided into two parts. The first half of the course focuses on teaching you the basic syntax of Javascript. Colt will walk you through core topics effortlessly, imparting jewels of JS wisdom along the way. Included in the first half of the course are many programming exercises and small projects, so you can test your new-found knowledge out. Each of these videos can be easily referenced in the future, so you can always come back and brush up on some topic whenever needed.
The second half of the course is focused on building some amazing projects. Stephen will show you how to build some production-ready Javascript applications, including a fully-featured E-Commerce web app! These projects are all styled to be absolutely beautiful, visually stunning apps that you will be proud to feature on your own personal portfolio. The main goal of these projects is to highlight design patterns, and show you the 'right' and 'wrong' ways of writing code. By the end, you'll be confident enough to work on your own personal projects with speed and finesse.
___ What You'll Learn ___
This is a long course, with just about every fact about Javascript you could ever hope to know. Here's a brief subset of the topics you'll cover:
Master the basics of the language, easily understanding variables, objects, arrays, and functions
Understand how to design the structure of the code you write, leading to beautiful and easy-to-read programs
Leverage Javascript's built-in methods to increase your productivity regardless of what libraries or frameworks you use
Develop practical skills around higher-order functions that you will utilize for years to come
Observe how the Javascript and browser work together, and how to increase the performance of JS code
Build awesome projects to fill your personal portfolio
Build command line tools from scratch using Node JS
Fetch and manage information from third-party API's
Build a fully-featured E-Commerce application from scratch - including production-grade authentication!
This is the ultimate Javascript course. There are many resources online for learning Javascript, but this is the only one that covers everything you need to know, from 'A' to 'Z', and a couple letters after that. Master the basics with Colt, then build awesome projects with Stephen. We've taught a million other engineers how to code, and now it is your turn!