Вопрос проверяет знание методов валидации и обработки числовых данных в JavaScript для предотвращения ошибок вычислений.
JavaScript — язык с динамической типизацией, что часто приводит к неожиданным результатам при числовых операциях. Например, '5' - 3 даст 2, а '5' + 3 — '53'. Чтобы избежать ошибок, необходимо явно проверять и преобразовывать входные данные.
function safeAdd(a, b) {
if (typeof a !== 'number' || typeof b !== 'number') {
throw new Error('Arguments must be numbers');
}
if (!Number.isFinite(a) || !Number.isFinite(b)) {
throw new Error('Arguments must be finite numbers');
}
return a + b;
}
// Пример с пользовательским вводом
function parseAndAdd(input1, input2) {
const num1 = parseFloat(input1);
const num2 = parseFloat(input2);
if (Number.isNaN(num1) || Number.isNaN(num2)) {
return 'Invalid input';
}
return num1 + num2;
}При работе с формами всегда преобразуйте строки в числа с помощью parseFloat() или Number(), затем проверяйте результат через Number.isFinite(). Для целых чисел используйте parseInt() с указанием системы счисления (обычно 10). Избегайте неявного сравнения с NaN, так как NaN !== NaN.
Вывод: Используйте комбинацию typeof, Number.isFinite() и Number.isNaN() для надёжной валидации числовых данных. Это предотвращает ошибки в вычислениях и делает код предсказуемым, особенно при обработке пользовательского ввода или данных из внешних источников.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию