JavaScript Beginner 12 h 30 min 59 items

JavaScript Basics

Learn modern JavaScript from the ground up: types, strings, control flow, arrays, objects, functions, classes, modules, async code and the DOM, finishing with an interactive web app built without a framework.

About this course

Learn the language behind every framework

JavaScript runs every interactive web page and much of the software behind it. This course teaches modern JavaScript itself, from your first console.log to a complete interactive web app, without relying on a framework. Along the way, callouts show where frameworks such as React and Vue make certain jobs easier, so you will recognize exactly what they do for you when you get there.

The course is split into eleven modules. Each module focuses on one topic, teaches it thoroughly with runnable examples, and ends with a quiz. You need to pass each quiz to unlock the next module, so every new idea builds on something you have already mastered.

What you will learn

  • Where JavaScript runs, using the browser console and Node.js, and reading error messages
  • Variables, types, operators, type coercion and strict equality
  • Template literals, string methods and formatting with Intl
  • Conditions, ?? and ?., and every kind of loop
  • Arrays and their methods: map, filter, reduce, sorting, destructuring and spread
  • Objects, this, copying, JSON, Map and Set
  • Functions, arrow functions, scope and closures
  • Classes, private fields, inheritance and ES modules
  • Errors, the event loop, promises, async/await and fetch
  • The DOM: changing the page, events, delegation, forms and localStorage
  • Building a task tracker app in plain JavaScript

How the course works

  • 48 short lessons, each with examples you can type and run
  • A quiz at the end of every module, with explanations for every answer
  • A timed final exam that draws questions from the whole course
  • A certificate of completion when you finish
  • A printable two page JavaScript cheat sheet (PDF) to keep

Syllabus

Not started: What JavaScript is and where it runs Lesson
Not started: The browser console and developer tools Lesson
Not started: Running JavaScript in a page and with Node.js Lesson
Not started: Your first program: console.log, comments and errors Lesson
Not started: Module 1 quiz: Getting started Quiz

Not started: Variables with let and const Lesson
Not started: Primitive types, null and undefined Lesson
Not started: Operators and arithmetic Lesson
Not started: Type coercion, truthiness and equality Lesson
Not started: Module 2 quiz: Variables, types and operators Quiz

Not started: Strings and template literals Lesson
Not started: Indexing, slicing and string methods Lesson
Not started: Formatting numbers, currency and dates Lesson
Not started: Module 3 quiz: Working with strings Quiz

Not started: Comparison and logical operators Lesson
Not started: Making decisions with if, else and the ternary operator Lesson
Not started: switch and lookup objects Lesson
Not started: while, do...while and for loops Lesson
Not started: for...of, for...in, break and continue Lesson
Not started: Module 4 quiz: Control flow Quiz

Not started: Array basics Lesson
Not started: References, copies and mutation Lesson
Not started: Searching and transforming with array methods Lesson
Not started: Sorting arrays correctly Lesson
Not started: Destructuring, spread and rest Lesson
Not started: Module 5 quiz: Arrays Quiz

Not started: Object literals and properties Lesson
Not started: Methods and this Lesson
Not started: Destructuring, spreading and copying objects Lesson
Not started: Iterating objects and JSON Lesson
Not started: Map and Set Lesson
Not started: Module 6 quiz: Objects, JSON, Map and Set Quiz

Not started: Declaring and calling functions Lesson
Not started: Parameters, defaults and return values Lesson
Not started: Arrow functions Lesson
Not started: Scope and closures Lesson
Not started: Callbacks and higher order functions Lesson
Not started: Module 7 quiz: Functions Quiz

Not started: Classes and instances Lesson
Not started: Private fields, getters, setters and static members Lesson
Not started: Inheritance with extends and super Lesson
Not started: Organizing code with ES modules Lesson
Not started: Module 8 quiz: Classes and modules Quiz

Not started: Handling errors with try, catch and finally Lesson
Not started: Asynchronous code and the event loop Lesson
Not started: Promises Lesson
Not started: async and await Lesson
Not started: Loading data with fetch Lesson
Not started: Module 9 quiz: Errors and asynchronous JavaScript Quiz

Not started: Selecting and changing elements Lesson
Not started: Creating elements and rendering lists Lesson
Not started: Events, listeners and delegation Lesson
Not started: Working with forms Lesson
Not started: Remembering data with localStorage Lesson
Not started: Module 10 quiz: The DOM, events and forms Quiz

Not started: Planning the task tracker Lesson
Not started: Building the task tracker Lesson
Not started: Debugging and where to go next Lesson
Not started: Final exam Quiz