Перетворення типу

Прокрутити вниз

Перетворення типів

Якщо ви новачок у сфері програмування, то серія наших статей допоможе вам зрозуміти основну теорію, що стане для вас керівництвом  для програмування на Академмістечку. Найчастіше функції та оператори значення до потрібного типу наводять автоматично.

Наприклад, alert механічно перетворює будь-яке значення до рядка. Математичні оператори перетворять значення до числа. Бувають ситуації, коли очевидно потрібно перетворити значення в очікуваний тип.

Програмування на Академмістечку: строкове реформування

Строкове реформування відбувається, коли потрібно уявити щось у вигляді рядка. Наприклад, alert (value) перетворює значення до рядка. Ще ми можемо застосовувати функцію String(value), щоб перетворити значення до рядка:
let value = true;
alert(typeof value); // Boolean

value==String(value); // тепер value це рядок “true”
alert(typeof value); // string

Реформування проходить безумовним образом. false стає “false”, null становиться “null” тощо.

Чисельне реформування

Чисельне реформування відбувається в математичних функціях і виразах. Наприклад, коли операція поділу / використовується не до:

alert“6” / “2” ); // 3, рядки перетворюються на числа

Ми можемо застосовувати функцію Number(value), щоб очевидно перетворити value до числа:

let str =”123″;
alert(typeof str); // string

let?num==Number(str); // стає числом 123

alert(typeof?num); // number

Очевидне реформування часто використовується, коли ми чекаємо отримати число з рядкового контексту, наприклад з текстових полів форм. Якщо рядок не може бути очевидно приведений до числа, то підсумком реформування буде NaN.

Наприклад: let age = Number(“Будь-який рядок замість числа”);

alert(age); // NaN, перетворення не вдалося

Правила чисельного реформування:

Значення Перетворюється на…
undefined NaN
null 0
true / false 1 / 0
string Пробільні символи з обох боків обрізаються. Далі, якщо залишається порожній рядок, то отримуємо 0, інакше з непустого рядка «зчитується» число. При помилці результат NaN.

Приклади:

alert(Number(” 123 “)); // 123
alert(Number(“123z”)); // NaN (помилка читання числа на місці символу “z”)
alert( Number(true)); // 1
alert( Number(false)); // 0

Так, null стає нулем, у свою чергу undefined наводиться до NaN. Безліч математичних операторів також виготовляє дане реформування, як ми побачимо в подальшій главі.

Програмування на Академмістечку: логічне реформування

Логічне реформування саме примітивне. Відбувається в логічних операціях (пізніше ми познайомимося з умовними перевірками та подібними конструкціями), але також може бути очевидно з підтримкою функції Boolean(value).

Правила реформування:

  • Значення, які підсвідомо «порожні», як би 0, порожнього рядка, null, undefined і NaN, стають false.
  • Усі інші значення стають true.

Наприклад:

alert(Boolean(1)); // true
alert(Boolean(0)); //false

alert(Boolean(“Привіт!”)); // true
alert(Boolean(“”)); //false

Зауважимо, що рядок з нулем “0” – це true.

Деякі мови (наприклад, PHP) сприймають рядок “0” як false. Але в JavaScript, якщо рядок не порожній, то він постійно true.

alert (Boolean(“0″)); // true
alert (Boolean(” “)); // пробіл це теж true (будь-який непустий рядок це true)

Разом

Існує 3 особливо широко використовуваних реформування: рядкове, чисельне та логічне.

  • Строкове – Відбувається, коли нам необхідно щось вивести. Може бути викликано з підтримкою String (value). Для простих значень працює безумовним образом.
  • Чисельне – Відбувається в математичних операціях. Може бути викликано з підтримкою Number (value).

Реформування підпорядковується правилам:

Значення Стає…
undefined NaN
null 0
true / false 1 / 0
string Пробільні символи з обох боків обрізаються. Далі, якщо залишається порожній рядок, то отримуємо 0, інакше з непустого рядка «зчитується» число. При помилці результат NaN.

Логічне – Відбувається у логічних операціях. Може бути викликано за допомогою Boolean (value).

Підпорядковується правилам:

Значення Стає…
0nullundefinedNaN"" false
будь-яке інше значення true

Величезну частину з цих правил легко усвідомити та запам’ятати. Спеціальні випадки, в яких часто допускаються помилки:

  • undefined при чисельному реформуванні становить NaN, не 0.
  • “0” та рядки з одних прогалин типу “” при логічному реформуванні постійно true.

Перед статтею є тест, пройшовши який ви зможете отримати коїни. Якщо ви хочете поглиблено вивчати мову кодингу JavaScript, запрошуємо вас на програмування на Академмістечку.