JavaScript中%的机制是什么?

时间:2018-12-18 08:58:45

标签: javascript

在这里,它给我输出0、1、2,就像for循环一样,只不过一次只记录一个数字。

我是jQuery的新手,我在这里偶然发现了这一行代码。任何人都可以解释该代码的工作原理吗?让我感到困惑的是第三行代码。

var i = 0;
setInterval(() => {
  i = (i + 1) % 3;
  console.log(i);
}, 1000);

1 个答案:

答案 0 :(得分:0)

i = (i + 1) % 3;做两件事

  1. i增加1
  2. 使用带有参数3的modulo operator,这将导致每个整数i产生值012,而其余整数除法 (
    1 % 3 = 1
    2 % 3 = 2
    3 % 3 = 0
    4 % 3 = 1
    5 % 3 = 2
    6 % 3 = 0
    等)

如果您希望使这两个步骤更加明显,则可以将其重写为i++; i %= 3。但这不是必须的,因为我认为任何程序员都可以立即理解原始代码行。