Перейти до основного вмісту

Змінні і типи

Змінні використовуються для зберігання даних і складаються із ідентифікатора (імені) і області в пам'яті, де зберігається їх значення. Змінну можна уявити у вигляді коробки з назвою, в якій щось лежить (значення).

<ключове_слово> <ім`я_змінної> = <значення>

Імена змінних

Ідентифікатор - це ім'я змінної, функції або класу. Складається з одного або декількох символів у наступному форматі.

  • Першим символом повинна бути літера a-z або A-Z, символ підкреслення _ або знак долара $.
  • Інші символи можуть бути літерами a-z, A-Z, цифрами 0-9, підкресленнями _ і знаками долара $.
  • Ідентифікатори чуттєві до регістру. Це означає, що змінні user, usEr і User - різні.

Ім'я змінної повинно бути зрозумілим.

# ❌ Погано
chislo
korzina_tovarov
profil_polzovatelya
tekushiy_mesyaz

# ✅ Добре
number
cart
userProfile
currentMonth

Використання camelCase-нотації для ідентифікаторів - це стандарт. Перше слово пишеться малими літерами, а кожне наступне починається з великої. Наприклад, user, greetUser, getUserData, isActive, activeGuestCount, totalWorkerSalary.

Ключові слова

Існує список зарезервованих ключових слів, які мають спеціальне значення і використовуються для певних конструкцій. Забороняється використовувати ключові слова у якості ідентифікаторів.

abstractargumentsawaitboolean
breakbytecasecatch
charclassconstcontinue
debuggerdefaultdeletedo
doubleelseenumeval
exportextendsfalsefinal
finallyfloatforfunction
gotoifimplementsimport
ininstanceofintinterface
letlongnativenew
nullpackageprivateprotected
publicreturnshortstatic
superswitchsynchronizedthis
throwthrowstransienttrue
trytypeofvarvoid
volatilewhilewithyield

Оголошення змінних

Оголошення змінної починається з ключового слова const. Така змінна повинна бути одразу ініціалізована значенням, після чого її не можна перевизначити.

// Змінні, оголошені як const, обов'язково повинні бути ініціалізовані
// значенням під час оголошення, інакше виникне помилка.
const yearOfBirth = 2006;
console.log(yearOfBirth); // 2006

// Якщо зміна оголошена як const, перезаписати її значення не можна.
// При спробі присвоїти нове значення, виникне помилка виконання скрипту.
yearOfBirth = 2020; // ❌ Неправильно, виникне помилка

Для того, щоб оголосити змінну, якій у подальшому можна буде присвоїти нове значення, використовується ключове слово let.

// Змінним, оголошеним через let, не обов'язково одразу присвоювати значення.
let age;

// Якщо змінній, оголошеній як let, не було присвоєно значення,
// вона ініціалізується спеціальним значенням undefined (не визначено).
console.log(age); // undefined

// console.log() - це метод для виведення даних у консоль браузера,
// пізніше познайомимось з ним детальніше.

// Якщо змінна оголошена як let, її значення можна перезаписати.
age = 14;
console.log(age); // 14
Цікаво

Оголошення змінної без ключового слова let або const призведе до помилки, якщо скрипт виконується в суворому режимі.

Коли використовувати const і let

Єдина відмінність const і let полягає у тому, що const забороняє повторно присвоювати змінній будь-яке значення. Оголошення const робить код читабельнішим, тому що змінна завжди посилається на одне і те саме зачення. У випадку з let такої впевненості немає.

Буде розумно використовувати let і const наступним чином:

  • Використовуйте const за замовчуванням, більшість змінних будуть оголошені саме таким чином.
  • Використовуйте let, якщо необхідно присвоїти змінній інше значення під час виконання скрипту.

константи і КОНСТАНТИ

Імена КОНСТАНТ - змінних, значення яких не змінюється ніколи впродовж роботи всього скрипту, як правило, записуються у форматі UPPER_SNAKE_CASE.

// Константа, що зберігає значення кольору
const COLOR_TEAL = "#009688";

// Константа, що зберігає повідомлення про результат логіну
const LOGIN_SUCCESS_MESSAGE = "Ласкаво просимо!";

Абсолютна більшість змінних – константи в іншому сенсі, вони просто не змінюють значення після присвоєння. Але, у різних запусках скрипту, це значення може бути різним. Імена таких змінних записують за допомогою формату camelCase.

Звернення до змінної

Важливо розрізняти невизначені і неоголошені змінні.

Невизначена (undefined) - це змінна, яка була оголошена ключовим словом let, але не ініціалізована значенням. За замовчуванням їй присвоюється початкове значення undefined.

let username;
console.log(username); // undefined

Неоголошена (undeclared або not defined) - це змінна, яка не була оголошена в доступній області видимості. Спроба звернутися до змінної до її оголошення призведе до помилки. Наприклад, щоб прочитати або змінити її значення.

// ❌ Неправильно, буде помилка
age = 15; // ReferenceError: Cannot access 'age' before initialization
console.log(age); // ReferenceError: age is not defined

// Оголошення змінної age
let age = 20;

// ✅ Правильно, звертаємось після оголошення
age = 25;
console.log(age); // 25

Примітивні типи

В JavaScript змінна не асоціюється з будь-яким типом даних, тип має її значення. Тобто змінна може зберігати значення різних типів.

Number - цілі числа і числа з плаваючою комою (крапкою).

const age = 20;
const points = 15.8;

String - рядки, послідовність з нуля або більше символів. Рядок починається і закінчується одинарними ', або подвійними лапками ".

const username = "Mango";
const description = "JavaSript для початківців";

Boolean - логічний тип даних, прапорці стану. Всього два значення: true і false. Наприклад, на запитання чи увімкнено світло в кімнаті, можна відповісти так (true) або ні (false).

  • true — так, вірно, істина, 1
  • false — ні, невірно, неправда, 0

Зверніть увагу на імена змінних, що містять буль. Вони ставлять запитання, і відповідь на нього - так або ні.

const isLoggedIn = true;
const canMerge = false;
const hasChildren = true;
const isModalOpen = false;

null - особливе значення, яке по суті означає ніщо. Використовується в тих ситуаціях, коли необхідно явно вказати порожнечу. Наприклад, якщо користувач нічого не вибрав, то можна сказати що значення null.

let selectedProduct = null;

undefined - ще одне спеціальне значення. За замовчуванням, коли змінна оголошується, але не ініціалізується, її значення не визначено, їй присвоюється undefined.

let username;
console.log(username); // undefined

Оператор typeof

Використовується для отримання типу значення змінної. Повертає на місце свого виклику тип значення змінної, вказаного після нього - рядок, в якому вказано тип.

let username;
console.log(typeof username); // "undefined"

let inputValue = null;
console.log(typeof inputValue); // "object"

const quantity = 17;
console.log(typeof quantity); // "number"

const message = "JavaScript is awesome!";
console.log(typeof message); // "string"

const isSidebarOpen = false;
console.log(typeof isSidebarOpen); // "boolean"