条件(num % 3 === 0):为什么要和0比较?

Condition (num % 3 === 0): why does it need to compare to 0?

我这里有一个简单的嘶嘶声:

var num = 1;

while (num <= 20) {
    switch(true){
        case(num%3 === 0 && num%5 === 0):
            console.log('fizzbuzz');
            break;
        case(num%3 === 0):
            console.log('fizz');
            break;
        case(num%5 === 0):
            console.log('buzz');
            break;
        default:
            console.log(num);
    }
    num++;
}

这行模数后与0的比较是什么意思:num%3===0?

为什么不只是 num%3

假设 num = 1,num%3 等于 1。因此如果您计算 if(num%3),它将计算为 true。而如果您评估 if(num%3===0) if 将评估为 false。

此外,=== 确保您不允许在不同类型的情况下使用任何值,但是在这种情况下,== 和 === 不会有太大区别。

如果您保留 num%3 而不是 num%3===0 , 含义完全改变,因为进入其中一种情况,它应该被 3 整除,所以如果不是,它将进入默认情况,因为 num%3 不等于 0。 简而言之,我们使用 % 运算符来检查它是否可整除,就好像答案是 0 当且仅当它是可整除的,即余数是 0