Основи JavaScript: типи даних

304

Від автора: JavaScript може спілкуватися і взаємодіяти з безліччю різних форматів даних, проте всю інформацію JS розбиває на 6 примітивних типів даних: numeric, string, boolean, null, undefined і symbol. (Object теж вважається окремим типом даних). JavaScript’необхідно знати, за яким типом даних він працює, щоб правильно його обробити: наприклад, оператор + використовується для додавання чисел, однак якщо в даних міститься рядок, той же оператор вже використовується для конкатенації даних.

На відміну від інших мов програмування, як JavaScript є слабо типізованих, тобто вам не потрібно оголошувати тип даних змінної ще до її використання; змінна автоматично присвоїть собі тип із присвоєних їй даних. У певному сенсі, таке приховане поведінка робить розуміння типів даних ще важливіше при вивченні JavaScript.

Числові дані

Числові дані це просто цифри. Цей тип даних охоплює всі форми чисел, від цілочисельних (1, 5, 623) до десяткових (0.75, .3333), а також від’ємні числа. Зверніть увагу на те, що числа в лапках («52») сприймаються не як числові дані, а як рядки. Приклад: я створив змінну з числовими даними:

var daysInYear = 365;

числові дані можуть містити + нескінченність (наприклад, при діленні числа на 0), — нескінченність і Nan («не число»)

Рядковий тип даних

Використовується для зберігання текстової інформації: будь-який текст в лапках (одинарних або подвійних) вважається рядком.

var myName = “Dudley Storey”;

Булев тип даних

Логічний вираз може приймати одне з двох абсолютних значення: true або false. Булев тип даних корисний, коли необхідно зробити точний вибір, значення можна інтерпретувати у вигляді 1 (true) та 0 (false), «yes» і «no» і т. д.

if (memberOfGroup == true) {
// дії
}

Необхідно пам’ятати, що значення true і false не можна брати в лапки: якщо це зробити, значення стануть рядковими. Так як JavaScript низько типізований мову, змінні при присвоєнні їм інших даних можуть змінювати свій тип.

Undefined

Використовується як значення за промовчанням для змінних, які були створені, але не містять явного значення. Наприклад, якщо створити через консоль змінну без значення, то консоль повідомить, що їй присвоєно значення undefined. При спробі використовувати дану змінну вискочить повідомлення:

var dataContainer;
> Undefined

Ось чому, при спробі поставити змінній значення об’єкта ще не створеної сторінки (або ще не існуючої) нам повернеться undefined:

var bearerBonds = document.getElementById(“nakatomi”);
> Undefined

Для безпеки завжди використовуйте оператор строгої рівності для перевірки типу змінної:

if (typeof dataContainer === “undefined”) {
// дії
}

Null

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

var standardBearer = null

Зверніть увагу, що null не дорівнює «», undefined, false, 0 або Nan, це окремий тип даних.

Об’єкти

Object – це особливий тип даних, якому я присвятив окрему статтю.

Символи

Символи вперше з’явилися в ES6 і, по суті, це напівприватні «лейбли» властивостей object. Так як це новий тип даних, він підтримується тільки в нових браузерах (Chrome 38+, Firefox 36+, Safari 9+, Opera 25+). Деякі функції типу Symbol не підтримуються поки що навіть у сучасних браузерах, в один браузер не підтримує (IE/Edge). Тому трохи пізніше я напишу про них окрему статтю, коли виросте підтримка даного типу даних.