Introduction

JavaScript is the language of the web. This site is a concise reference for the fundamentals you need to build interactive pages and apps.

  • Read the concept
  • See a quick example
  • Try it in your own code

Values & Types

Every JavaScript expression produces a value. Values have types: primitives like string, number, and boolean, plus objects, arrays, and functions.

const name = 'Ava';
const score = 98;
const isActive = true;
const values = [name, score, isActive];
console.log(typeof values); // "object"

Variables

Use const for values that should not be reassigned, and let for values that can change. Avoid var for modern code.

const pi = 3.14;
let count = 0;
count += 1;
// var oldStyle = 'not recommended';

Operators

JavaScript supports arithmetic, comparisons, logical operators, and more.

const result = 5 + 3 * 2;
const isSame = 2 === '2';
const value = result > 10 && isSame === false;
console.log(value); // true

Control Flow

Use conditional statements and loops to direct program flow.

const score = 72;
if (score >= 90) {
  console.log('A');
} else if (score >= 75) {
  console.log('B');
} else {
  console.log('C or lower');
}

for (let i = 0; i < 3; i++) {
  console.log(i);
}

Functions

Functions group logic into reusable blocks. Arrow functions are concise and common in modern JavaScript.

function greet(name) {
  return `Hello, ${name}!`;
}

const greetArrow = name => `Hello, ${name}!`;
console.log(greet('Ava'));
console.log(greetArrow('Ava'));

Objects & Arrays

Objects store named properties. Arrays store ordered lists of values.

const user = {
  id: 1,
  name: 'Ava',
  active: true
};

const items = ['apple', 'banana', 'cherry'];
console.log(user.name);
console.log(items[1]);

DOM Basics

The Document Object Model (DOM) lets JavaScript read and change the page structure and content.

const title = document.querySelector('h1');
title.textContent = 'JavaScript Fundamentals';

const newItem = document.createElement('p');
newItem.textContent = 'This content was added by JavaScript.';
document.body.appendChild(newItem);

Events

Events let your code respond to user actions like clicks, input, and page load.

const button = document.querySelector('#demo-button');
button.addEventListener('click', () => {
  alert('Button clicked!');
});

Async JavaScript

Asynchronous code lets JavaScript wait for operations like network requests without freezing the page.

async function loadData() {
  const response = await fetch('https://jsonplaceholder.typicode.com/todos/1');
  const data = await response.json();
  console.log(data);
}
loadData();

ES6+ Features

Modern JavaScript includes template literals, destructuring, spread syntax, and modules.

const point = { x: 10, y: 20 };
const { x, y } = point;
const nums = [1, 2, 3];
const all = [...nums, 4, 5];
console.log(x, y, all);