JavaScript Fundamentals
Master the language of the web. From variables to closures, async/await, and modern ES6+.
Why learn JavaScript Fundamentals?
JavaScript is the only language every web browser understands, which makes it the most widely deployed programming language in the world. Learn it and you can make web pages interactive, build full applications, and later move into React, Node.js, or TypeScript without starting over.
This course rebuilds JavaScript from the ground up for absolute beginners: values and variables first, then strings, numbers, and the coercion rules that confuse self-taught developers for years. From there you work through control flow, loops, functions, arrays, objects, and finally async JavaScript, the part that powers every login form and live feed you have ever used.
Each of the 46 lessons is interactive. You write code, the editor checks it instantly, and the AI tutor is one click away when something does not click.
Who this course is for
- Beginners who want to build things for the web from day one
- Self-taught developers with gaps in coercion, closures, or async basics
- Anyone planning to learn React, Node.js, or TypeScript next
What you'll build and practice
- Programs that make decisions with conditions and handle messy user input
- Functions and closures you can reason about instead of copy-pasting
- Array and object pipelines using map, filter, and reduce
- Async code with promises and async/await that fetches and processes data
- A capstone that combines everything into one working program
What you'll learn
JavaScript Fundamentals is organized into 9 focused modules. By the end you'll be comfortable with:
- Getting Started
- Strings & Numbers
- Operators & Type Coercion
- Control Flow
- Loops
- Functions
- Arrays
- Objects
- Async JavaScript
Course curriculum
46 lessons across 9 modules. Lessons marked Free preview are readable without an account.
Module 1. Getting Started
What JavaScript is and how to write your first program
- 5mWhat is JavaScript?Free preview
Why JavaScript exists, what it powers, and how to run your first line of code.
- 6mRunning Your First CodeFree preview
Where to type and run JavaScript, how programs execute top to bottom, and how to write comments.
- 8mVariables: let & constFree preview
Store and name data with let and const — the foundation every program is built on.
- 6mThe Old Way: var & Hoisting
Why modern JavaScript avoids var, and what 'hoisting' means — so old tutorials never confuse you.
- 7mPractice: Your First Programs
Put Module 1 together: trace real mini-programs using console.log, comments, let, and const.
Module 2. Strings & Numbers
Working with text, numbers, and JavaScript's core value types
- 8mStrings & Template Literals
Create text values with strings, glue them together, and build them cleanly with template literals.
- 8mString Methods
Transform text with the built-in actions every string knows: trim, toUpperCase, includes, slice, and more.
- 8mNumbers & Math
Work with integers, decimals, and JavaScript's built-in Math toolbox — and meet the famous 0.1 + 0.2 surprise.
- 7mConverting Strings & Numbers
Turn "42" into 42 and back — plus NaN, the strange value you get when a conversion fails.
- 7mBooleans, null & undefined
The yes/no type, intentional emptiness, and the difference between null and undefined.
Module 3. Operators & Type Coercion
Arithmetic, comparison, logical operators, and JavaScript's type system
- 7mArithmetic & Assignment Operators
Master the operators that compute and assign values, including the post/pre-increment trap.
- 8mComparison & Equality: == vs ===
Understand why === is almost always the right choice and what type coercion does behind the scenes.
- 7mType Coercion: When JS Converts For You
Understand the automatic type conversions behind JavaScript's most famous surprises — and how to stay in control.
- 8mLogical Operators & Truthiness
Combine yes/no conditions with &&, ||, and !, and learn which values JavaScript treats as true or false.
- 7mShort-Circuits & Default Values
The secret second life of && and || — plus ??, the modern operator for safe default values.
Module 4. Control Flow
Making decisions with if/else, switch, and the ternary operator
- 7mif / else if / else
Branch your code based on conditions — the most fundamental control structure in programming.
- 7mswitch Statements
Handle multiple discrete cases cleanly with switch/case — and master the fall-through mechanic.
- 6mTernary Operator
Write concise inline conditionals with the ternary operator — and learn when NOT to use it.
- 8mPractice: Making Decisions
Apply if/else, switch, and the ternary to realistic scenarios — and learn which tool fits which job.
Module 5. Loops
Repeat actions with for, while, and modern iteration patterns
- 6mA First Look at Arrays
Meet the array — JavaScript's list — just enough to start looping over collections of values.
- 8mfor Loops
Repeat code a fixed number of times with the classic for loop — the workhorse of iteration.
- 7mwhile & do-while Loops
Loop when you don't know the count upfront — and the key difference between while and do-while.
- 7mfor...of & for...in
Iterate arrays with for...of and object keys with for...in — cleaner than index-based loops.
- 8mPractice: Loops
Classic loop exercises — running totals, countdowns, filtering — including your first FizzBuzz.
Module 6. Functions
Define reusable logic with declarations, arrow functions, and closures
- 9mFunction Basics
Define and call functions, understand return values, and learn the difference between declarations and expressions.
- 7mScope: Where Variables Live
Global vs local variables, why functions can see out but you can't see in, and a first glimpse of closures.
- 7mFunctions Are Values: Expressions & Hoisting
Store functions in variables, pass them around like data, and learn why declarations can be called 'early' but expressions can't.
- 8mArrow Functions
Write functions in a shorter syntax and understand how arrow functions handle `this` differently.
- 8mDefault Parameters, Rest & Spread
Handle missing arguments gracefully, collect any number of parameters, and expand arrays into arguments.
- 8mPractice: Functions
Trace, complete, and choose between functions — declarations, arrows, defaults, rest, and scope, all together.
Module 7. Arrays
Store ordered data and transform it with map, filter, and reduce
- 8mArray Basics
A proper foundation: create, read, update, and search arrays — including includes, indexOf, and find.
- 8mAdding & Removing Items
Grow and shrink arrays with push, pop, shift, unshift, and splice — and learn what 'mutation' really means.
- 8mCopying, Sorting & Joining
The non-mutating toolkit — slice, concat, join, spread copies — plus sort and its infamous default behaviour.
- 9mTransforming Arrays: map & filter
Transform every element with map and keep only what passes with filter — the two most-used array methods in JavaScript.
- 9mreduce: Many Values → One
The most powerful — and most feared — array method, built up slowly from the running-total loop you already know.
- 7mArray Destructuring & Spread
Unpack array values into variables with destructuring and clone/merge arrays with spread.
Module 8. Objects
Model real-world data with key-value pairs, methods, and destructuring
- 9mObject Basics
Model real-world entities with key-value pairs, dynamic property access, and Object utility methods.
- 8mObjects Are References
Why copying an object doesn't really copy it, why identical objects aren't ===, and how to make true copies.
- 7mObject.keys, values & entries
Turn any object into arrays of keys, values, or pairs — and loop over objects with all your array skills.
- 9mObject Methods & this
Add methods to objects, understand `this`, and unpack values with object destructuring.
- 8mObject Destructuring & Safe Access
Unpack object properties into variables — with renames and defaults — and reach into maybe-missing data safely with ?.
Module 9. Async JavaScript
Promises, async/await, and the fetch API — how JavaScript handles time
- 8mWhat Does Asynchronous Mean?
Why JavaScript can't just wait, what setTimeout reveals about the language, and how callbacks schedule work for later.
- 10mPromises
Represent future values with Promises, chain .then(), and handle errors with .catch().
- 10masync / await
Write asynchronous code that reads like synchronous code using async functions and the await keyword.
- 10mThe fetch API
Make HTTP requests to REST APIs using fetch, read JSON responses, and handle network errors.
- 10mCapstone: Putting It All Together
Read a complete, realistic mini-app that uses everything you've learned — then take a look at where to go next.
Frequently asked questions
- Should I learn JavaScript or Python as my first language?
- Both are excellent first languages. Pick JavaScript if you are excited about websites and things you can see in a browser. Pick Python if data, automation, or AI pull you more. The core concepts transfer either way, and many Kodion learners take both tracks.
- Does this course cover modern JavaScript or old-style code?
- Modern JavaScript throughout: let and const, arrow functions, template literals, destructuring, spread syntax, and async/await. Older patterns like var are explained only so you can read existing code, never as the way to write new code.
- Will I be able to build a website after this course?
- You will know the language that powers website behavior. Pair it with the Web Development Fundamentals track for HTML and CSS, and then React Essentials, and you will have the complete front-end picture.
- Is JavaScript Fundamentals included in the free plan?
- Yes. Create a free account and you can take the full course, track your progress, earn XP, and use your daily allowance of AI tutor help. The first lessons are even readable right here without an account.
- How long does it realistically take to finish?
- The 46 lessons total roughly 12 hours of focused work. At a sustainable pace of 30 minutes a day, most learners finish in about a month with the concepts actually retained, helped by the built-in review system.
Ready to start JavaScript Fundamentals?
Create a free account to track progress, earn XP, and get instant help from the AI tutor as you code.
Create your free account