Почему выводит true?
Все никак не могу понять почему выводит true, а не false. Ведь 1 поделить на 2 = 0.5. Т.е не 0 и не 1.
const testNum = (num) => {
if (num % 2 === 0 || num % 2 === 1) {
return true
} else {
return false
}
};
console.log(testNum(1));
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Ведь 1 поделить на 2 = 0.5
Если поделить 1 на 2 результат будет действительно 0.5
Однако в примере num % 2 === 0 || num % 2 === 1 нет ни единого знака деления, а знак % - это взятие остатка от деления, а не само деление.
Например при делении 4 на 3, будет (по-школьному):
4 | 3
- -- ------
3
--
1
т.е. остаток 1
При взятии остатка из двух чисел, где первое число меньше второго - очевидно будет возвращаться первое число (если второе не дробное, например, а первое - целое). Потому что остаток обычно остаётся при применении оператора к большему числу.
1%2 --> 1
1%242 --> 1
1%2234324 --> 1
1%87623487 --> 1
5%234 ---> 5
5%666 ---> 5
5%22398234 ---> 5
111%112 ---> 111
111%12342312 ---> 111
111%1986412 ---> 111
и т.д.