Ответ
Ответ не найден
Ответ 18+ 🔞
А, ну это же про тот самый случай, когда твой код работает, но ты сам нихуя не понимаешь, как и почему. Классика, ёпта. Сидишь, смотришь на этот пиздопроебибна-код, и волнение ебать — а вдруг всё накроется медным тазом?
Вот представь: у тебя есть функция, которая должна просто сложить два числа. Вроде бы, хуй с горы, задача. А она тебе возвращает то строку, то NaN, а иногда вообще молча сраку подтирает и ничего не делает. И ты сидишь, и подозрение ебать чувствую — что-то тут нечисто.
function add(a, b) {
// О, смотри-ка, какой "умный" код
return a + b;
}
console.log(add(2, 3)); // 5 — ок
console.log(add(2, "3")); // "23" — ну ёбана, опять
console.log(add(null, undefined)); // NaN — ядрёна вошь!
И начинаешь ты копать. А копать, блядь, нечего! Функция из трёх строк, а ведёт себя как хитрая жопа. Оказывается, этот + в JS — он ещё тот полупидор. То числа складывает, то строки конкатенирует, а если ему null с undefined скормить, так он вообще в ахуе и NaN выплёвывает.
И главное, доверия ебать ноль ко всему этому цирку. Каждый раз, когда пишешь +, думаешь: "А не наебу ли я сам себя?" Приходится явно всё в числа превращать, будто ты не программист, а нянька для капризного ребёнка.
function safeAdd(a, b) {
return Number(a) + Number(b); // Теперь-то точно, бля буду
}
И вот после таких танцев с бубном, когда уже всё вроде работает, ловишь себя на мысли: "Сам от себя охуел". Потратил полчаса на решение задачи уровня "хуй в пальто", потому что язык решил быть "умным" и "гибким". Гибким, блядь, как мартышлюшка на банане.
Вывод? Всегда знай, с каким типом данных работаешь. А то будет вам не Хиросима, а наглый и внезапный NaN посреди продакшена. И тогда уже точно — чих-пых тебя в сраку, пока дебажишь.