В JavaScript вы можете представить число как фактическое число 30 или как строку «30».

Если бы вы использовали строгое сравнение для сравнения этих двух объектов, это не удалось бы, потому что это два разных типа объектов.

var num1 = 30;
var num2 = '30';
if (num1 === num2) {
    console.log(true);
} else {
    console.log(false);
}
// Will log `false`

Сегодня давайте рассмотрим три разных способа преобразования строки в число.

parseInt() #

Метод parseInt() преобразует строку в целое число (целое число).

Он принимает два аргумента. Первый аргумент — это строка для преобразования. Второй аргумент называется radix. Это основное число, используемое в математических системах. Для нашего использования это всегда должно быть 10.

var text = '30px';
var integer = parseInt(text, 10);
// returns 30

parseFloat() #

Метод parseFloat() преобразует строку в число точек (число с десятичными точками). Вы даже можете передавать строки со случайным текстом.

var text = '2.19Stuff';
var pointNum = parseFloat(text);
// returns 2.19

Number() #

Метод Number() преобразует строку в число.

Иногда это целое число. В других случаях это номер точки. И если вы передадите строку со случайным текстом, вы получите NaN, аббревиатуру от «Not a Number».

В результате этого несоответствия это менее безопасный выбор, чем parseInt() и parseFloat(). Если вы знаете формат нужного числа, используйте его. Если вы хотите, чтобы строка завершалась ошибкой с NaN, если в ней есть другие символы, Number() может быть лучшим выбором.

// Convert strings
Number('123456'); // returns 123
Number('110.3345'); // returns 110.3345
Number('2.19Stuff'); // returns NaN
Number('30px'); // returns NaN