---
title: "JavaScript fundamentals — ZudoJS Academy"
description: "The JavaScript language from your first line: values and types, scope, operators, decisions and loops, functions, arrays and objects, classes, errors, modules and your first asynchronous code."
source: https://zudojs.oyinlola.site/learn/javascript
---

LEVEL 2 · JAVASCRIPT

Course Foundation

# JavaScript fundamentals

The JavaScript language from your first line: values and types, scope, operators, decisions and loops, functions, arrays and objects, classes, errors, modules and your first asynchronous code.

- **19 lessons**
- **13 h** to read and try
- **Before this:** [Programming thinking](https://zudojs.oyinlola.site/learn/programming-thinking)

0 of 19 lessons done

[Start lesson 1 →](https://zudojs.oyinlola.site/learn/js-intro)

## When you finish, you can

- Predict what a JavaScript expression returns, including coercion and equality
- Explain scope, hoisting, the temporal dead zone and closures
- Write functions, including recursive and higher-order ones
- Model data with arrays and objects and transform it with array methods
- Write a class, throw and catch errors, and split code into modules
- Read and write promise-based code with async and await

**You build:** Small command-line programs: a calculator library, a student manager and a guessing game

MODULE 1

## Getting started

1. [1**Meet JavaScript**Learn where JavaScript comes from, who decides how it changes, how to tell which features you can use, and the syntax rules every line of code follows.40 min](https://zudojs.oyinlola.site/learn/js-intro)
2. [2**Set up your computer**Install Node.js, try JavaScript in the Node.js REPL, write and run your first program, and turn its folder into a project.30 min](https://zudojs.oyinlola.site/learn/setup)

MODULE 2

## Values and operators

1. [3**Values, variables and types**Store values in variables with const and let, meet the seven primitive types, and learn how JavaScript handles text, numbers, true and false, and "no value".35 min](https://zudojs.oyinlola.site/learn/js-values)
2. [4**Types in depth**Map every JavaScript type, see why objects are shared while primitives are copied, and learn exactly how equality and type coercion decide what your comparisons return.50 min](https://zudojs.oyinlola.site/learn/js-types-deep)
3. [5**Operators**Calculate, compare and combine values with JavaScript's operators, give missing values safe defaults with ?? and ?., and avoid the classic precedence traps.30 min](https://zudojs.oyinlola.site/learn/js-operators)

MODULE 3

## Control flow

1. [6**Making decisions**Let your program choose what to do with if, else if and else, the ternary operator and switch, and keep decisions readable with guard clauses.30 min](https://zudojs.oyinlola.site/learn/js-conditions)
2. [7**Loops**Repeat work with for, while, do...while, for...of and for...in, control a loop with break and continue, and build a number guessing game.35 min](https://zudojs.oyinlola.site/learn/js-loops)

MODULE 4

## Functions

1. [8**Functions**Package logic into reusable functions, pass values in and get results out, pass functions to other functions, and meet scope, closures and recursion.40 min](https://zudojs.oyinlola.site/learn/js-functions)

MODULE 5

## Arrays and objects

1. [9**Arrays**Keep ordered lists in arrays, add and remove items, search them, and transform them with map, filter, reduce and sort, then build a small student management system.40 min](https://zudojs.oyinlola.site/learn/js-arrays)
2. [10**Objects and JSON**Group related values into objects, read and change their properties, copy and take them apart safely, and turn them into JSON, the text format every API speaks.40 min](https://zudojs.oyinlola.site/learn/js-data)
3. [11**Objects in depth**Lock an object's shape, validate writes with setters, hide fields, and copy and compare objects safely, by building a bank account that cannot be broken.50 min](https://zudojs.oyinlola.site/learn/js-objects-deep)
4. [12**Modern JavaScript**Take a piece of old-style JavaScript and rewrite it step by step with the modern syntax a backend uses every day, fixing real bugs on the way.35 min](https://zudojs.oyinlola.site/learn/js-modern)

MODULE 6

## Scope, closures and recursion

1. [13**Scope and how code runs**Learn where a name can be used, how closures remember values, why some names exist before their line runs, and how the call stack and the heap work, so you can read error messages and debug real programs.40 min](https://zudojs.oyinlola.site/learn/js-scope)
2. [14**Closures in depth**See how closures really work through lexical environments, then use them for private state, function factories, memoization and cleanup, without leaking memory.45 min](https://zudojs.oyinlola.site/learn/js-closures)
3. [15**Recursion**Walk folders, comment threads and org charts of any depth with functions that call themselves, then make them safe against deep and circular data.50 min](https://zudojs.oyinlola.site/learn/js-recursion)

MODULE 7

## Classes, errors, async and modules

1. [16**this, prototypes and classes**Understand what this means inside a method and why it gets lost, how objects share methods through prototypes, and how to write classes with private fields, getters, static methods and inheritance.45 min](https://zudojs.oyinlola.site/learn/js-classes)
2. [17**Handling errors**Tell syntax, runtime and logic errors apart, throw and catch errors, read an Error object's name, message, cause and stack, write your own error classes, and turn errors into safe API answers.40 min](https://zudojs.oyinlola.site/learn/js-errors)
3. [18**Asynchronous JavaScript**Learn why a backend waits without blocking, how callbacks, promises and async/await work, how errors travel through asynchronous code, and how to run work in sequence or in parallel.50 min](https://zudojs.oyinlola.site/learn/js-async)
4. [19**Modules**Split a program into files with ES modules, understand the older CommonJS require, choose between named and default exports, and avoid circular dependencies.40 min](https://zudojs.oyinlola.site/learn/js-modules)

## Course checkpoint

Prove you can move on. The checkpoint picks 20 questions at random from every lesson in this course. Get 16 right to pass. Your result is saved in this browser only.
