JavaScript Перетворення (конвертація) типів
- Конвертація рядків в числа
- Конвертація чисел в рядки
- Конвертація дат в числа
- Конвертація чисел в дати
- Конвертація булевих значень в числа
- Конвертація чисел в булеві значення
JavaScript Конвертація типів
JavaScript змінні можуть бути конвертовані в нову змінну або інший тип даних:
- Використовуючи JavaScript функцію
- Автоматично самим JavaScript
Конвертація рядків в числа
Глобальний метод Number()
може конвертувати рядки в числа.
Рядки, що містять числа (наприклад "3.14") конвертуються в числа (наприклад 3.14).
Пусті рядки конвертуються в 0.
Будь що інше конвертується в NaN
(Not a Number - Не Число).
Number("3.14") // поверне 3.14
Number(" ") // поверне 0
Number("") // поверне 0
Number("99 88") // поверне NaN
Числові методи
В розділі Числові методи ви знайдете більше методів, що можуть бути використані для конвертації рядків в числа:
Метод | Опис |
---|---|
Number() | Поверне число, конвертоване з його аргумента |
parseFloat() | Парсить (аналізує) рядок та повертає число з плаваючою точкою |
parseInt() | Парсить (аналізує) рядок та повертає ціле число |
Унарний оператор +
Унарний оператор + можна використовувати для конвертації змінної в число:
Якщо змінну неможливо конвертувати, вона все одно стане числом, але зі значенням NaN
(Not a Number / Не Число):
Конвертація чисел в рядки
Глобальний метод String()
може конвертувати числа в рядки.
Це може бути використано на будь-якому типу чисел, літералів, змінних або виразів:
Приклад
String(x) // поверне рядок із числової змінної x
String(123) // поверне рядок із числового літерала 123
String(100 + 23) // поверне рядок із числа виразу
Спробуйте самі »
Числовий метод toString()
робить те саме.
Більше методів
В розділі Числові методи ви знайдете більше методів, що можуть бути використані для конвертації чисел в рядки:
Метод | Опис |
---|---|
toExponential() | Поверне рядок з округленим числом, записаним з використанням експоненціального запису. |
toFixed() | Поверне рядок з округленим числом та записаним зі вказаною кількістю десяткових знаків. |
toPrecision() | Поверне рядок з числом, записаним із вказаною довжиною |
Конвертація дат в числа
Глобальний метод Number()
може бути використано для конвертації дат в числа.
d = new Date();
Number(d) // поверне 1404568027739
Метод дати getTime()
робить те саме.
d = new Date();
d.getTime() // поверне 1404568027739
Конвертація дат в рядки
Глобальний метод String()
може конвертувати дати в рядки.
String(Date()) // поверне "Thu Jul 17 2024 15:38:19 GMT+0200 (W. Europe Daylight Time)"
Метод дати toString()
робить те саме.
Приклад
Date().toString() // поверне "Thu Jul 17 2024 15:38:19 GMT+0200 (W. Europe Daylight Time)"
В розділі Методи отримання дат ви знайдете більше методів, що можуть бути використані для конвертації дат в рядки:
Метод | Опис |
---|---|
getDate() | Отримати день у вигляді числа (1-31) |
getDay() | Отримати день тижня у вигляді числа (0-6) |
getFullYear() | Отримати чотиризначний рік (yyyy) |
getHours() | Отримати годину (0-23) |
getMilliseconds() | Отримати мілісекунди (0-999) |
getMinutes() | Отримати хвилини (0-59) |
getMonth() | Отримати місяць (0-11) |
getSeconds() | Отримати секунди (0-59) |
getTime() | Отримати час (мілісекунди від 1 Січня 1970 року) |
Конвертація булевих значень в числа
Глобальний метод Number()
може також конвертувати булеві значення в числа.
Number(false) // поверне 0
Number(true) // поверне 1
Конвертація булевих значень в рядки
Глобальний метод String()
може конвертувати булеві значення в рядки.
String(false) // поверне "false"
String(true) // поверне "true"
Булевий метод toString()
робить те саме.
false.toString() // поверне "false"
true.toString() // поверне "true"
Автоматична конвертація типів
Коли JavaScript намагається оперувати "неправильним" типом даних, він намагається конвертувати значення в "правильний" тип.
Результат не завжди буде таким, яким ви очікували:
5 + null // поверне 5 тому що null конвертується в 0
"5" + null // поверне "5null" тому що null конвертується в "null"
"5" + 2 // поверне "52" тому що 2 конвертується в "2"
"5" - 2 // поверне 3 тому що "5" конвертується в 5
"5" * "2" // поверне 10 тому що "5" та "2" конвертуються в 5 та 2
Спробуйте самі »
Автоматична конвертація рядка
JavaScript автоматично викликає функцію змінної toString()
, коли ви намагаєтесь "вивести" об’єкт або змінну:
document.getElementById("demo").innerHTML = myVar;
// якщо myVar = {name:"Fjohn"} // toString конвертується в "[object Object]"
// якщо myVar = [1,2,3,4] // toString конвертується в "1,2,3,4"
// якщо myVar = new Date() // toString конвертується в "Fri Jul 18 2014 09:08:55 GMT+0200"
Числа та булеві значення також конвертуються, але це не дуже помітно:
// якщо myVar = 123 // toString конвертується в "123"
// якщо myVar = true // toString конвертується в "true"
// якщо myVar = false // toString конвертується в "false"
JavaScript Таблиця конвертації типів
В цій таблиці показано результат конвертації різних значень JavaScript в Число, Рядок та Булеве значення:
Оригінал Значення |
Конвертує в число |
Конвертує в рядок |
Конвертує в булеве значення |
Спробуй це |
---|---|---|---|---|
false | 0 | "false" | false | Спробуй це » |
true | 1 | "true" | true | Спробуй це » |
0 | 0 | "0" | false | Спробуй це » |
1 | 1 | "1" | true | Спробуй це » |
"0" | 0 | "0" | true | Спробуй це » |
"000" | 0 | "000" | true | Спробуй це » |
"1" | 1 | "1" | true | Спробуй це » |
NaN | NaN | "NaN" | false | Спробуй це » |
Infinity | Infinity | "Infinity" | true | Спробуй це » |
-Infinity | -Infinity | "-Infinity" | true | Спробуй це » |
"" | 0 | "" | false | Спробуй це » |
"20" | 20 | "20" | true | Спробуй це » |
"twenty" | NaN | "twenty" | true | Спробуй це » |
[ ] | 0 | "" | true | Спробуй це » |
[20] | 20 | "20" | true | Спробуй це » |
[10,20] | NaN | "10,20" | true | Спробуй це » |
["twenty"] | NaN | "twenty" | true | Спробуй це » |
["ten","twenty"] | NaN | "ten,twenty" | true | Спробуй це » |
function(){} | NaN | "function(){}" | true | Спробуй це » |
{ } | NaN | "[object Object]" | true | Спробуй це » |
null | 0 | "null" | false | Спробуй це » |
undefined | NaN | "undefined" | false | Спробуй це » |
Значення в лапках означають рядкові значення.
Виділені червоним значення вказують на значення, які (деякі) програмісти можуть не очікувати.