这是一个关于 setInterval 的教程的例子,但它并没有为我的新手大脑充分解释它。如果您能回答这些问题,我将不胜感激

i) 1000 毫秒计时器是否意味着每秒钟都会触发 moveElement 函数?换句话说,它运行后,它会等待 1 秒,然后再次运行它?

ii) moveElement 的目的是在每次运行时将“redBox”向左移动 10 个像素吗?这就是函数中使用“px”的原因

iii) 在第一次运行 moveElement 之后,x (x+=10) 的新值是否替换了 var x=0 中的 0 值?即它是否存储在程序顶部的变量 x 中的函数之外?

var x = 0;
setInterval(moveElement,1000);

function moveElement() {
  x+=10;
  var left = x + "px";
  document.getElementById("redbox").style.left=left;

最佳答案

i) 是的,至少在理论上是这样。 JavaScript 的(主要是)单线程特性意味着它不会正好是 1000 毫秒。

ii) 通过向左添加 10px,将其向右移动 10px。 Px是pixel的缩写,是像素的缩写。

iii) x 是在函数之外定义的,所以它每次都保持不变。每次调用该函数时,x 都会大 10。如果在函数中定义了 x,则每次调用时都会是 10。

关于JavaScript setInterval,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5150850/

10-16 00:13