2.1 Змінні у JavaScript
JavaScript — це гнучка і динамічна мова програмування, яка підтримує різні способи оголошення змінних і роботи з типами даних. У цій лекції ми розглянемо три основні способи оголошення змінних (var, let, const) і базові примітивні типи даних у JavaScript.
Змінні у JavaScript
JavaScript — це мова з динамічною типізацією. Змінні в ньому не мають типу. Будь-якій змінній можна присвоїти будь-яке значення у будь-який час (але є нюанси).
Щоб створити змінну, потрібно написати конструкцію виду:
var name;
Змінній можна одразу присвоїти значення:
var name = value;
Але взагалі-то в JavaScript є аж цілих 3 способи створення змінних. Ось про них зараз детальніше і поговоримо.
Оператор var
Змінні, оголошені за допомогою var, мають функціональну або глобальну область видимості. Вони піддаються "спливанню" (hoisting), що означає, що їх оголошення переміщується на початок своєї області видимості під час виконання коду.
Приклад:
console.log(x); // undefined
var x = 10;
console.log(x); // 10
У цьому прикладі змінна x піднімається на початок своєї області видимості, тому перший console.log виводить undefined.
Іншими словами, «спливання» перетворює наш код у цей:
var x;
console.log(x); // undefined
x = 10;
console.log(x); // 10
Оператор let
Розробники дуже хотіли змінити поведінку оператора var, але вони боялися зламати мільйони вже написаних рядків коду. Тому вони просто придумали ще один оператор, який теж створює змінні, але з трохи іншою поведінкою.
Змінні, оголошені за допомогою let, мають блочну область видимості. Це означає, що вони доступні тільки у межах блоку коду (зазвичай у фігурних дужках {}), у якому вони оголошені. let не піддається спливанню так, як var.
Приклад:
Змінна y існує тільки всередині блоку if.
if (true) {
let y = 20;
console.log(y); // 20
}
console.log(y); // ReferenceError: y is not defined
Оператор const
Змінні, оголошені за допомогою const, також мають блочну область видимості і не можуть бути переназначені після їх ініціалізації. Однак це не робить об’єкти, оголошені через const, незмінними — їх властивості можна змінювати.
Тобто змінну міняти не можна, а об’єкт, на який вона посилається, — можна. Хотіли як краще, а вийшло, як завжди.
Приклад:
У цьому прикладі константа x не може бути переназначена, але об’єкт obj може змінюватися.
const x = 30;
console.log(x); // 30
x = 40; // TypeError: Assignment to constant variable.
const obj = { name: 'Alice' };
obj.name = 'Bob'; // Це допустимо
console.log(obj.name); // Bob
2.2 Примітивні типи даних
JavaScript підтримує кілька примітивних типів даних, які представляють собою прості значення, що не є складними об'єктами.
Тип Number
Представляє будь-які числові значення, включаючи цілі числа і числа з плаваючою крапкою.
Приклади:
let num = 42;
let pi = 3.14;
Тип String
Представляє текстові дані: рядки, символи, емодзі. Все що схоже на рядки — це сюди.
Приклади:
let greeting = "Hello, world!";
let facepalm = "🤦";
let char = 'x';
Тип Boolean
Представляє логічні значення true або false.
let isTrue = true;
let isFalse = false;
Тип Null
Представляє навмисну відсутність значення.
let empty = null;
Якщо тип складається з одного значення, яке означає відсутність значення, то може він все-таки унікальне значення, ніж унікальний тип?
Тип Undefined
Представляє значення змінної, яка була оголошена, але не ініціалізована.
let notAssigned;
console.log(notAssigned); // undefined
2.3 Порівняння var, let і const
Давайте наостанок порівняємо наші три способи створення змінних ще раз:
| Характеристика | var | let | const |
|---|---|---|---|
| Область видимості | Функціональна або глобальна | Блочна | Блочна |
| Спливання (Hoisting) | Так, але ініціалізація не спливає | Ні | Ні |
| Переназначення | Так | Так | Ні |
| Ініціалізація | Необов’язкова | Необов’язкова | Обов’язкова |
JavaScript надає кілька способів оголошення змінних, кожен з яких має свої особливості і застосовність залежно від контексту. var використовується рідше через свої особливості спливання і глобальну область видимості. let і const віддаються перевагу у сучасному JavaScript через їх блочну область видимості і контроль над переназначенням.
Примітивні типи даних дозволяють працювати з основними структурами даних, забезпечуючи базову функціональність, необхідну для створення складних додатків. І це найпопулярніша мова у світі :)
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ