два примера, я может туплю, но разве пример ниже не выводит чётные числа?
(В описании сказано что выводит нечётный, и на практике выводит нечётные)
for (let i = 0; i < 10; i++) {
if (i % 2) {
alert( i );
}
}
i % 2 при нечётных i равняется 1, 1 неявно конвертируется в true. Всё так.
if работает не только с bool, для него всё, что не 0 - это true. Поэтому выводит нечётные числа.
А при чётных что происходит? Remainder становится 0, считается за false и alert не срабатывает? Я правильно понял?
ну да, 0 - это false, соответственно, if не открывает область видимости и просто идёт дальше.
Понял, получается, условия с remainder, являются true, только если остаток имеется, если всё успешно поделилось без остатка, то условие с remainder в таких случаях всегда будет false?
Да. При том, обычно любое ненулевое значение приводится к true.
Спасибо вам за пояснения)
Обсуждают сегодня