Ми хочемо зробити цей проєкт з відкритим кодом доступним для людей у всьому світі.
Допоможіть перекласти цей підручник вашою мовою!
Перетворення типу
Здебільшого оператори та функції автоматично перетворюють значення, які їм надаються, на потрібний тип.
Наприклад, alert автоматично перетворює будь-яке значення в рядок, щоби показати його. Математичні операції перетворюють значення на числа.
Є також випадки, коли нам необхідно явно перетворити значення на очікуваний тип.
У цьому розділі ми не будемо охоплювати об’єкти. Поки що ми поговоримо тільки про примітиви.
Пізніше, після ознайомлення з об’єктами, ми розглянемо їхнє перетворення в розділі Перетворення об’єктів в примітиви.
Перетворення на рядок
Перетворення на рядок відбувається, коли нам потрібне значення у формі рядка.
Наприклад, alert(value) робить це, щоби показати значення.
Також ми можемо викликати функцію String(value) для перетворення значення в рядок:
Перетворення рядків здебільшого очевидне. false стає "false", null стає "null" тощо.
Перетворення на число
Перетворення на числа відбувається в математичних функціях і виразах автоматично.
Наприклад, коли ділення / застосовується до нечислових значень.
Ми можемо використовувати функцію Number(value) для явного перетворення value на число:
Явне перетворення зазвичай потрібно, коли ми читаємо значення з джерела на основі рядка, подібно текстовій формі, але очікуємо, що буде введено число.
Якщо рядок не є дійсним числом, результатом такого перетворення є NaN. Наприклад:
Правила перетворення на числа:
| Значення | Результат |
|---|---|
undefined |
NaN |
null |
0 |
true та false |
1 та 0 |
string |
Пробільні символи (пробіли, символи табуляції \t, символи нового рядку \n тощо) на початку та з кінця видаляються. Якщо рядок, що залишився в результаті, порожній, то результатом є 0. В іншому випадку число “читається” з рядка. Помилка дає NaN. |
Приклади:
Зверніть увагу, що null та undefined тут поводяться по-різному: null стає нулем, а undefined стає NaN.
Більшість математичних операторів також виконують такі перетворення. Ми розглянемо їх в наступному розділі.
Перетворення на булевий тип
Булеве перетворення є найпростішим.
Воно відбувається в логічних операціях (пізніше ми познайомимося з умовними перевірками та іншими подібними конструкціями), але також може бути виконане явно за допомогою виклику Boolean(value).
Правила перетворення:
- Значення, які інтуїтивно “порожні”, такі як
0, порожній рядок,null,undefinedтаNaN, стаютьfalse. - Інші значення стають
true.
Наприклад:
"0" є trueПідсумки
Три найпоширеніші перетворення типів — це перетворення на рядок, на число та на булевий тип.
Перетворення на рядок – Відбувається, коли ми щось виводимо. Може бути виконане за допомогою String(value). Перетворення на рядок звичайно очевидне для примітивних значень.
Перетворення на число – Відбувається в математичних операціях. Може бути виконане з Number(value).
Перетворення дотримується правил:
| Значення | Результат |
|---|---|
undefined |
NaN |
null |
0 |
true / false |
1 / 0 |
string |
Рядок читається “як є”, пробільні символи (пробіли, символи табуляції \t, символи нового рядку \n тощо) з обох сторін ігноруються. Пустий рядок стає 0. Помилка дає NaN. |
Перетворення на булевий тип – Відбувається в логічних операціях. Може виконуватися за допомогою Boolean(value).
Дотримується правил:
| Значення | Результат |
|---|---|
0, null, undefined, NaN, "" |
false |
| будь-які інші значення | true |
Більшість із цих правил легко зрозуміти й запам’ятати. Примітними винятками, де люди зазвичай роблять помилки, є:
undefinedєNaNяк число, а не0."0"і рядки, що мають тільки пробіли, такі як" ", єtrueяк булеві значення.
Об’єкти тут не охоплені. Ми повернемося до них пізніше в розділі Перетворення об’єктів в примітиви, який присвячений виключно об’єктам, після того, як ми дізнаємося про більш базові речі в JavaScript.
- © 2007—2026 Ілля Кантор
- про проєкт
- зв’яжіться з нами
Коментарі
<code>, для кількох рядків – обгорніть їх тегом<pre>, для понад 10 рядків – використовуйте пісочницю (plnkr, jsbin, codepen…)