Number()

Number() - это встроенная функция JavaScript, которая преобразует значение в число.

Чаще всего на первых уроках она нужна после prompt(). Дело в том, что prompt() всегда возвращает строку, даже если пользователь ввел обычное число.

let age = prompt('Сколько вам лет?');

console.log(typeof age);

Если пользователь введет 25, в консоли все равно будет:

string

Чтобы JavaScript начал работать с этим значением как с числом, можно использовать Number().

Что такое Number()

Number() берет значение и пытается превратить его в число.

let value = Number('25');

console.log(value);
console.log(typeof value);

В консоли будет:

25
number

Было строковое значение ‘25’, а стало число 25.

Важно: Number() не меняет исходную переменную сам по себе. Он возвращает новое значение. Поэтому результат нужно сохранить в переменную или сразу использовать в выражении.

Синтаксис

Общая запись выглядит так:

Number(value);

value - это значение, которое нужно преобразовать в число.

Примеры:

Number('10');
Number('3.14');
Number(true);

Чаще всего результат записывают в переменную:

let count = Number('10');

console.log(count);

Как преобразовать строку в число

Самый понятный пример - строка, внутри которой записано число.

let price = '1500';
let numberPrice = Number(price);

console.log(numberPrice);
console.log(typeof numberPrice);

Результат:

1500
number

Теперь с этим значением можно нормально выполнять математические операции.

let firstNumber = Number('10');
let secondNumber = Number('5');

console.log(firstNumber + secondNumber);

В консоли будет:

15

Если бы мы не использовали Number(), JavaScript сложил бы строки:

let firstNumber = '10';
let secondNumber = '5';

console.log(firstNumber + secondNumber);

Результат был бы таким:

105

Это происходит потому, что оператор + со строками выполняет склеивание, а не сложение чисел.

Number() и prompt()

Очень частый пример - получить число от пользователя.

let age = prompt('Сколько вам лет?');
let numberAge = Number(age);

console.log(numberAge);
console.log(typeof numberAge);

Если пользователь введет 18, то переменная numberAge будет хранить уже число.

Можно записать короче:

let age = Number(prompt('Сколько вам лет?'));

console.log(age);
console.log(typeof age);

Такой вариант часто используют в учебных примерах. Но для начала лучше писать в две строки: так проще увидеть, что именно происходит.

Еще один пример:

let firstNumber = Number(prompt('Введите первое число'));
let secondNumber = Number(prompt('Введите второе число'));

console.log(firstNumber + secondNumber);

Теперь если пользователь введет 10 и 5, в консоли будет 15, а не 105.

Что такое NaN

Number() пытается преобразовать значение в число. Но не все значения можно нормально превратить в число.

let value = Number('JavaScript');

console.log(value);

В консоли будет:

NaN

NaN означает Not a Number, то есть “не число”.

Такой результат получится, если в строке нет нормального числа:

console.log(Number('Привет'));
console.log(Number('10px'));
console.log(Number('двадцать'));

Во всех этих случаях JavaScript не сможет получить обычное число.

Есть интересная особенность: если проверить NaN через typeof, результат будет number.

console.log(typeof NaN);

В консоли будет:

number

Пока достаточно запомнить: NaN появляется тогда, когда JavaScript пытался получить число, но не смог.

Преобразование других значений

Number() умеет преобразовывать не только строки.

console.log(Number(true));
console.log(Number(false));
console.log(Number(null));

Результат:

1
0
0

Логическое значение true превращается в 1, а false - в 0.

Пустая строка тоже превращается в 0:

console.log(Number(''));

Результат:

0

На первых порах главное не пытаться сразу запомнить все варианты. Гораздо важнее понять основную идею: Number() нужен, когда значение нужно привести к числовому типу.

Частые ошибки

Первая ошибка - забыть сохранить результат.

let age = '18';

Number(age);

console.log(typeof age);

В консоли будет:

string

Почему? Потому что Number(age) вернул новое число, но мы его никуда не записали.

Правильно так:

let age = '18';

age = Number(age);

console.log(typeof age);

Теперь результат:

number

Вторая ошибка - думать, что Number() сможет достать число из любой строки.

console.log(Number('10 рублей'));

Результат будет:

NaN

Для Number() строка должна быть похожа на обычное число. Если рядом есть лишний текст, JavaScript не сможет выполнить такое преобразование.

Третья ошибка - забыть, что prompt() возвращает строку.

let firstNumber = prompt('Введите первое число');
let secondNumber = prompt('Введите второе число');

console.log(firstNumber + secondNumber);

Если ввести 2 и 3, получится 23, потому что это строки.

Чтобы получить сложение чисел, нужно преобразовать значения:

let firstNumber = Number(prompt('Введите первое число'));
let secondNumber = Number(prompt('Введите второе число'));

console.log(firstNumber + secondNumber);

Теперь результат будет 5.

Number() - один из самых простых способов преобразовать значение в число. Он особенно часто встречается в начале обучения, когда мы получаем данные от пользователя через prompt() и хотим использовать их в расчетах.