# Welcome to Learn JavaScript!

JavaScript is responsible for the "interactive layer" of a web page,
complementing the "[structural](https://web.dev/learn/html)" layer provided by markup and
"presentational" layer provided by [CSS](https://web.dev/learn/css). JavaScript lets
developers modify the structure and presentation of a page by adding, removing,
and altering markup and styles in response to any combination of user
interaction and internal logic. JavaScript can give you a tremendous amount of
control over the rendering and behavior of a web page, even letting you alter
some of the browser's built-in behaviors.

This course covers the fundamentals of JavaScript, from the basic rules that
govern how the language is written to the built-in methods and properties it
provides.

- [**Introduction to JavaScript**](https://web.dev/learn/javascript/introduction)
- [**Data types and structures**](https://web.dev/learn/javascript/data-types)
- [**Comparison operators**](https://web.dev/learn/javascript/comparison)
- [**Control flow**](https://web.dev/learn/javascript/control-flow)
- [**Functions**](https://web.dev/learn/javascript/functions)
- [**Objects**](https://web.dev/learn/javascript/objects)
- [**Collections**](https://web.dev/learn/javascript/collections/indexed)
- [**Classes**](https://web.dev/learn/javascript/classes)
- [**Appendix**](https://web.dev/learn/javascript/appendix)

> [!NOTE]
> This course was written by [Mat Marquis](https://hire.wil.to), with input and review from [Rachel Andrew](https://rachelandrew.co.uk/), [Francis Gulotta](https://roborooter.com/), [Matthias Rohmer](https://twitter.com/matthiasrohmer), and Alex Katz.