Работа с typeof
Есть переменная которая принимает значение от пользователя (должен принимать число)
Сделал я это так (унарный + чтобы на выходе получать число):
let a = +prompt('Write number', 0);
Делаю проверку на то что это число :
if ( (typeof a == "number") //какой-то код
Проблема в том что если даже я введу строку, то оно все равно передается как число.
Если убрать унарный +, то условие в любом случае будет false.
Мне нужно в переменную a передать число и проверить ее на number, в противном случае если я ввел строку, условие не должно выполниться.
Ответы (2 шт):
Автор решения: umid
→ Ссылка
Я нашел как можно проверить переменную на не числовое значение.
if ( ( typeof a == "number") && !( isNaN(money)) //какой-то код
Автор решения: Александр Лесив
→ Ссылка
Можно написать вот такую функцию, используя как фундамент особенности поведения функции isNaN.
const a = '1';
const b = NaN;
const c = 0;
const d = 'Infinity';
const e = 'not number';
function isNum(num) {
// Если NaN тоже считать числом, то:
// return Number.isNaN(num) || !isNaN(num)
return !isNaN(num);
}
console.log(isNum(a)); // '1' - true
console.log(isNum(b)); // NaN - false
console.log(isNum(c)); // 0 - true
console.log(isNum(d)); // 'Infinity' - true
console.log(isNum(e)); // 'not a number' - false