Объясните функционал операторов % и === в JavaScript?

Условие задачи вывести числа, которые делятся на 3 и на 5 из массива a = [1..30] Задача практически решена, но я не могу понять зачем нужно использовать % и === 0. Так как % делит с остатком, а === проверяет тип. Объясните пожалуйста. Вот код: https://codepen.io/1rocky12/pen/qBbQPzw

let out = document.querySelector(".out");
let out1 = document.querySelector(".out1");

let a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
let outStr = "";
let outStr1 = "";

for (let i = 0; i < a.length; i++) {
    if (a[i] % 3 === 0) {
        outStr += a[i];
    }
    else if (a[i] % 5 === 0) {
        outStr1 += a[i];
    }
}
out.innerHTML = outStr;
out1.innerHTML = outStr1;
<section>
        <div class="out"></div>
        <div class="out1"></div>

    </section>


Ответы (1 шт):

Автор решения: xxramm

if (a[i] % 3 === 0) Разберем это условие

a[i] % 3 - получаем остаток деления на 3, допустим 9%3 = 0, 10%3 = 1.

=== - строгое сравнение, истинна только в том случае, если типы сравниваемых значений являются одинаковыми (к примеру: string-string, number-number).

Соответственно в вашем случае if (a[i] % 3 === 0) означает, что если остаток от деления числа a[i] на 3 строго равен нулю(по-русски если число делится на 3 без остатка), то выполнить необходимое действие.

→ Ссылка