У JavaScript є кілька способів перетворення строк (string) у числа. Ось найпоширеніші з них:
1 Використання Number()
Примусово перетворює переданий рядок на число. Повертає NaN (Not-a-Number), якщо рядок не є числом. Видаляє пробіли з початку і кінця рядка.
Коли використовувати: Якщо вам потрібно явне перетворення рядка на число.
const num = Number("123"); // Результат: 123 Number("123"); // 123 Number(" 123 "); // 123 Number("abc"); // NaN
2 Використання унарного плюса (+
)
Це швидкий спосіб перетворення, аналогічний Number()
. Менш очевидний для читабельності коду. Працює так само, як Number().
Перевага: Легкий і швидкий метод для запису.
const num = +"123"; +"123"; // 123 +" 123 "; // 123 +"abc"; // NaN
3 Використання parseInt()
для цілих чисел
Перетворює рядок у ціле число, ігноруючи будь-які символи після числа. Ігнорує дробові частини числа. Може аналізувати числа з іншою системою числення (наприклад, шістнадцяткові).
const num = parseInt("123.45"); parseInt("123.45"); // 123 parseInt("123abc"); // 123 parseInt("0xF", 16); // 15 (шістнадцяткове число)
4 Використання parseFloat()
для дробових чисел
Перетворює рядок у число з плаваючою точкою. Читає дробові числа (десяткові). Ігнорує текст після числа.
Коли використовувати: Коли важливо зберегти дробову частину числа.
const num = parseFloat("123.45"); // Результат: 123.45 parseFloat("123.45abc"); // 123.45 parseFloat("123.00"); // 123
5 Оператор множення (*
) з числом
Використання оператора математичного множення для примусового перетворення.
Коли використовувати: Швидкий спосіб для перетворення, але не найкращий вибір для читабельності коду.
const num = "123" * 1; // Результат: 123 "123" * 1; // 123 "123.45" * 1; // 123.45 "abc" * 1; // NaN
6 Метод Math.floor()
, Math.round()
, тощо
або інші математичні операції.
Застосування будь-якої математичної функції або операції автоматично перетворить рядок у число. Підходить для випадків, коли потрібен додатковий математичний обробіток.
Коли використовувати: Якщо вам одночасно потрібно перетворення та математична операція.
const num = Math.floor("123.45");
Кожен метод має свої переваги залежно від контексту використання. Якщо виникає потреба перевірити, чи рядок можна конвертувати в число, перед застосуванням конвертації, можна скористатися функцією isNaN()
або порівнянням.