Ответ
Ответ не найден
Ответ 18+ 🔞
Ага, вот ты сидишь и думаешь: «Ну и что тут такого? Просто функция, которая берёт число и умножает его на два». А потом бац — и ты в жопе, потому что забыл, что в мире есть ещё и null, и undefined, и какой-нибудь пиздюк тебе строку подсунул вместо цифры.
Вот смотри, классика жанра, прямо из учебника для дебилов:
function multiplyByTwo(num) {
return num * 2;
}
console.log(multiplyByTwo(5)); // 10 — красота!
console.log(multiplyByTwo("5")); // 10 — JavaScript, ёпта, делает вид, что всё окей!
console.log(multiplyByTwo(null)); // 0 — ну ладно, спорно, но ок...
console.log(multiplyByTwo(undefined)); // NaN — вот и приехали, сука!
console.log(multiplyByTwo("пять")); // NaN — а это уже пиздец полный.
И вот ты такой сидишь с NaN в консоли и думаешь: «И кто же это, блядь, спроектировал?». А потом вспоминаешь, что это ты сам, и хочется ебать свои старые костыли.
Так что, дружок, если не хочешь, чтобы твой код развалился, как карточный домик от чиха, проверяй входные данные. Хотя бы так, без затей:
function multiplyByTwoSafely(num) {
if (typeof num !== 'number' || isNaN(num)) {
throw new Error('Э, дружок-пирожок, мне нужно число, а не это вот всё!');
}
return num * 2;
}
А то ведь бывает: передали undefined, а функция молча отработала в NaN и пошла дальше, как ни в чём не бывало. Потом этот NaN пополз по всей системе, как ядрёна вошь, и через три часа у тебя в отчётах вместо цифр — сплошные библейские откровения. И ты потом неделю ищешь, откуда ноги растут. Волнение — ебать, терпения — ноль, ебать.
Короче, мораль проста: либо валидируй всё на входе, либо потом не удивляйся, что твоё приложение ведёт себя, как пьяный Герасим с мешком.