JS String to Number: преобразование строки в число в JavaScript
В JavaScript есть несколько способов преобразования строк в число.
1. parseInt - преобразует строку в целое число. Функция принимает два параметра - строку и основание системы счисления (обычно 10). Если основание не указано, то функция пытается определить его самостоятельно.
Например:
const str = "123";
const num = parseInt(str);
console.log(num); // 123
2. parseFloat - преобразует строку в число с плавающей точкой. Функция принимает один параметр - строку.
Например:
const str = "3.14";
const num = parseFloat(str);
console.log(num); // 3.14
3. Number - преобразует строку в число любого типа (целое число, число с плавающей точкой, NaN). Функция принимает один параметр - строку.
Например:
const str1 = "123";
const num1 = Number(str1);
console.log(num1); // 123
const str2 = "3.14";
const num2 = Number(str2);
console.log(num2); // 3.14
const str3 = "abc";
const num3 = Number(str3);
console.log(num3); // NaN
4. Unary plus (+) - преобразует строку в число любого типа (целое число, число с плавающей точкой, NaN). Оператор применяется к строке без использования дополнительных функций.
Например:
const str = "123.45";
const num = +str;
console.log(num); // 123.45
Важно учитывать, что некорректные значения будут преобразованы в NaN (Not a Number). Также нужно следить за тем, что дополнительные символы в строке, кроме цифр и знаков десятичной точки, могут привести к ошибке преобразования строки в число.
Например:
const str = "123.45abc";
const num = +str;
console.log(num); // NaN
Также стоит учесть, что преобразование строк в число не меняет саму строку. Если необходимо изменить значение переменной, то ее нужно переназначить на преобразованное число.
Например:
let str = "123";
let num = parseInt(str);
console.log(str); // "123"
console.log(typeof str); // "string"
console.log(num); // 123
console.log(typeof num); // "number"
str = "3.14";
num = parseFloat(str);
console.log(str); // "3.14"
console.log(typeof str); // "string"
console.log(num); // 3.14
console.log(typeof num); // "number"