0
Koodi Прогрес
Поточний:0 днів
Рекорд:0 днів
Без активності
Активний день
Сьогодні

JavaScript для початківців

Оживи свій сайт — додай інтерактивність, анімації та логіку!

🤔 Що таке JavaScript?

JavaScript (JS) — це мова програмування, яка додає інтерактивність веб-сторінкам. Якщо HTML — це скелет, CSS — одяг, то JavaScript — це мозок і м'язи!

🦉
Кудик пояснює:

Без JavaScript сайт — це просто картинка. З JavaScript — це жива програма! Кнопки реагують на кліки, форми перевіряються, контент змінюється без перезавантаження сторінки. Магія! ✨

🏗️ HTML + CSS + JS — Святе Тріо!

HTML 🏗️ CSS 🎨 JavaScript ⚡
Структура Стилі Поведінка
Що показати Як виглядає Як працює
Скелет Одяг Мозок

✨ Що можна зробити з JavaScript?

🖱️

Реакція на події

Кліки, наведення, введення тексту

🔄

Зміна контенту

Динамічне оновлення без перезавантаження

Валідація форм

Перевірка даних перед відправкою

🎬

Анімації

Складні інтерактивні ефекти

🌐

Запити на сервер

Отримання та відправка даних (API)

💾

Збереження даних

LocalStorage, cookies

💡
JavaScript ≠ Java

Це дві абсолютно різні мови! Назва JavaScript — це маркетинговий хід 90-х. Не плутай!

🔗 Як додати JavaScript?

1️⃣ Зовнішній файл (рекомендовано!)

index.html — підключення JS
1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<head>
    <title>Мій сайт</title>
</head>
<body>
    <h1>Привіт, JavaScript!</h1>
    
    <!-- JS підключаємо перед </body> -->
    <script src="script.js"></script>
</body>
</html>
Чому перед </body>?

Щоб HTML встиг завантажитись до виконання скрипта. Або використовуй атрибут defer: <script src="script.js" defer></script>

2️⃣ Вбудований скрипт

index.html — вбудований скрипт
1
2
3
4
5
<script>
    // JavaScript код прямо в HTML
    alert('Привіт!');
</script>

🛠️ Консоль браузера — твій друг!

Відкрий DevTools (F12 або Ctrl+Shift+I) → вкладка Console. Там можна писати і тестувати JS код!

Console — спробуй прямо зараз!
1
2
3
console.log('Привіт, світ!');   // вивід в консоль
alert('Вікно повідомлення');       // спливаюче вікно
2 + 2                               // → 4

📦 Змінні — зберігаємо дані

Змінна — це "коробка" для зберігання даних. В JS є три способи створити змінну:

script.js — змінні
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// let — можна змінювати значення
let name = 'Кудик';
name = 'Koodi';  // ✅ можна

// const — не можна змінювати (константа)
const PI = 3.14159;
PI = 3;          // ❌ помилка!

// var — застарілий спосіб (не використовуй!)
var oldWay = 'не рекомендовано';

// Правило: використовуй const за замовчуванням
// Якщо потрібно змінювати — тоді let
const age = 25;
let score = 0;
score = score + 10; // score = 10

📝 Типи даних

script.js — типи даних
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// String — рядок (текст)
const greeting = 'Привіт';
const name = "Кудик";
const template = `Привіт, ${name}!`; // шаблонний рядок

// Number — число
const age = 25;
const price = 99.99;

// Boolean — true або false
const isStudent = true;
const isPremium = false;

// Array — масив (список)
const colors = ['red', 'green', 'blue'];

// Object — об'єкт (ключ: значення)
const user = {
    name: 'Кудик',
    age: 5,
    isOwl: true
};
💡
Шаблонні рядки — це зручно!

Використовуй зворотні лапки ` та ${змінна} для вставки значень: `Привіт, ${name}!`

🔢 Оператори

script.js — оператори
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Арифметичні
5 + 3   // 8 — додавання
10 - 4  // 6 — віднімання
3 * 4   // 12 — множення
15 / 3  // 5 — ділення
17 % 5  // 2 — остача від ділення
2 ** 3  // 8 — степінь (2³)

// Порівняння
5 === 5   // true — строга рівність
5 !== 3   // true — не дорівнює
10 > 5    // true — більше
3 < 7     // true — менше
5 >= 5    // true — більше або дорівнює
3 <= 2    // false — менше або дорівнює

// Логічні
true && true   // true — І (обидва true)
true || false  // true — АБО (хоча б один true)
!true          // false — НЕ (інверсія)

// Скорочені
let x = 5;
x += 3;  // x = x + 3 → 8
x++;     // x = x + 1 → 9
⚠️
=== vs ==

Завжди використовуй === (строга рівність)! == може давати дивні результати: '5' == 5 → true, але '5' === 5 → false

🔀 Умови — if / else

script.js — умовні конструкції
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const age = 18;

// Проста умова
if (age >= 18) {
    console.log('Доступ дозволено');
}

// if / else
if (age >= 18) {
    console.log('Ти дорослий');
} else {
    console.log('Ти ще малий');
}

// if / else if / else
const score = 85;

if (score >= 90) {
    console.log('Відмінно! 🏆');
} else if (score >= 70) {
    console.log('Добре! 👍');
} else {
    console.log('Потрібно ще попрацювати');
}

⚡ Тернарний оператор — коротка умова

script.js — тернарний оператор
1
2
3
4
5
const age = 20;

// умова ? якщо_true : якщо_false
const status = age >= 18 ? 'Дорослий' : 'Дитина';
console.log(status); // 'Дорослий'

🔁 Цикли — повторюємо дії

script.js — цикли
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// for — коли знаємо скільки разів
for (let i = 0; i < 5; i++) {
    console.log(`Ітерація ${i}`);
}
// 0, 1, 2, 3, 4

// while — поки умова true
let count = 0;
while (count < 3) {
    console.log(count);
    count++;
}

// for...of — перебір масиву
const fruits = ['🍎', '🍌', '🍊'];

for (const fruit of fruits) {
    console.log(fruit);
}

// forEach — метод масиву
fruits.forEach(fruit => console.log(fruit));

⚙️ Функції — блоки коду

Функція — це блок коду, який можна викликати багато разів:

script.js — функції
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 1️⃣ Оголошення функції (function declaration)
function greet(name) {
    return `Привіт, ${name}!`;
}

console.log(greet('Кудик')); // Привіт, Кудик!

// 2️⃣ Функціональний вираз
const add = function(a, b) {
    return a + b;
};

console.log(add(2, 3)); // 5

// 3️⃣ Стрілкова функція (arrow function) — сучасний спосіб!
const multiply = (a, b) => a * b;

console.log(multiply(4, 5)); // 20

// Стрілкова з кількома рядками
const calculateArea = (width, height) => {
    const area = width * height;
    return area;
};
🦉
Порада від Кудика:

Для простих функцій використовуй стрілкові функції — вони коротші та сучасніші! const sum = (a, b) => a + b;

📚 Масиви — списки даних

script.js — методи масивів
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const fruits = ['🍎', '🍌', '🍊'];

// Доступ за індексом (починається з 0!)
fruits[0]  // '🍎'
fruits[2]  // '🍊'

// Довжина
fruits.length  // 3

// Додати в кінець
fruits.push('🍇');  // ['🍎', '🍌', '🍊', '🍇']

// Видалити з кінця
fruits.pop();  // повертає '🍇'

// Знайти індекс
fruits.indexOf('🍌')  // 1

// Перевірити наявність
fruits.includes('🍎')  // true

// map — трансформація кожного елемента
const numbers = [1, 2, 3];
const doubled = numbers.map(n => n * 2);  // [2, 4, 6]

// filter — фільтрація
const even = numbers.filter(n => n % 2 === 0);  // [2]

🌳 DOM — працюємо зі сторінкою

DOM (Document Object Model) — це представлення HTML як дерева об'єктів, з яким можна працювати через JavaScript.

script.js — робота з DOM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Знайти елемент
const title = document.querySelector('h1');          // перший h1
const btn = document.querySelector('.btn');          // по класу
const header = document.querySelector('#header');    // по ID
const items = document.querySelectorAll('.item');   // всі елементи

// Змінити контент
title.textContent = 'Новий заголовок';    // тільки текст
title.innerHTML = '<span>HTML</span>';  // з HTML

// Змінити стилі
title.style.color = 'blue';
title.style.fontSize = '32px';

// Додати/видалити клас
title.classList.add('active');
title.classList.remove('active');
title.classList.toggle('active');  // додати/видалити

// Атрибути
btn.getAttribute('href');
btn.setAttribute('href', 'https://koodi.ua');

// Створити елемент
const newDiv = document.createElement('div');
document.body.appendChild(newDiv);

🎯 Події — реагуємо на дії

script.js — обробка подій
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const btn = document.querySelector('.btn');

// addEventListener — додати обробник події
btn.addEventListener('click', () => {
    alert('Кнопку натиснуто!');
});

// Популярні події:
// click — клік мишкою
// mouseover — наведення
// mouseout — відведення
// keydown — натискання клавіші
// submit — відправка форми
// input — введення в поле

// Приклад з параметром event
btn.addEventListener('click', (event) => {
    console.log(event.target);  // елемент, на який клікнули
    event.preventDefault();   // скасувати стандартну дію
});

// Форма
const form = document.querySelector('form');
form.addEventListener('submit', (e) => {
    e.preventDefault();  // не перезавантажувати сторінку
    console.log('Форму відправлено!');
});

🎮 Практика — лічильник

Створимо простий лічильник з кнопками:

index.html + script.js — лічильник
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!-- HTML -->
<div class="counter">
    <button class="btn-minus"></button>
    <span class="count">0</span>
    <button class="btn-plus">+</button>
</div>

// JavaScript
const countElement = document.querySelector('.count');
const btnMinus = document.querySelector('.btn-minus');
const btnPlus = document.querySelector('.btn-plus');

let count = 0;

// Функція оновлення відображення
const updateDisplay = () => {
    countElement.textContent = count;
};

// Обробники кліків
btnPlus.addEventListener('click', () => {
    count++;
    updateDisplay();
});

btnMinus.addEventListener('click', () => {
    count--;
    updateDisplay();
});

🚀 Що вивчати далі?

🔄

Async/Await

Асинхронний код, проміси

🌐

Fetch API

Запити на сервер, робота з API

📦

ES6+ features

Деструктуризація, spread, модулі

⚛️

React / Vue

Сучасні фреймворки

🟢

Node.js

JavaScript на сервері

📘

TypeScript

Типізований JavaScript

🎮 Вивчай JavaScript на Koodi!

🚀 Перейти до курсу JS
✅ DOM маніпуляції ✅ Async/Await ✅ Реальні проєкти