Number()
- Что такое Number()
- Синтаксис
- Как преобразовать строку в число
- Number() и prompt()
- Что такое NaN
- Преобразование других значений
- Частые ошибки
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() и хотим использовать их в расчетах.