JavaScript设置间隔

JavaScript设置间隔,javascript,global-variables,setinterval,Javascript,Global Variables,Setinterval,这是一个关于setInterval的教程中的例子,但它并没有对我的新手大脑进行充分的解释。如果您能回答这些问题,我将不胜感激 i) 1000毫秒计时器是否意味着moveElement功能将每秒触发一次?换句话说,在它运行之后,它将等待1秒,然后再次运行它 ii)moveElement的目的是在每次运行时将“红盒”向左移动10个像素吗?这就是函数中使用“px”的原因吗 iii)moveElement第一次运行后,x(x+=10)的新值是否替换var x=0中的0值?i、 e.它是否存储在程序顶部变

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

i) 1000毫秒计时器是否意味着moveElement功能将每秒触发一次?换句话说,在它运行之后,它将等待1秒,然后再次运行它

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

iii)moveElement第一次运行后,x(x+=10)的新值是否替换var x=0中的0值?i、 e.它是否存储在程序顶部变量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是像素的缩写,像素是图片元素的缩写

iii)
x
是在函数外部定义的,因此每次都会持续。每次调用该函数时,
x
将大10。如果在函数中定义了
x
,则每次调用该函数时,它将为10。

i)setInterval将每秒运行moveElement函数。如果设置超时,则在1秒后只运行一次

ii)似乎它就是这样做的

iii)在这种情况下,x在函数moveElement中的任何位置都没有声明,因此它会尝试查找一个全局变量,它会在顶部声明。因此,是的,它会将新值存储在函数外部的x中。

i)这将帮助您理解setTimeout和setInterval:

ii)添加了“px”(表示“像素”),以将有效属性值分配给“style.left”,其单位为“px”

iii)是,它将替换该值,因为var x已在函数外部声明,因此
全局变量。

ii是错误的。它将10px添加到左边,因此将其推到右边10px。链接的文章中有一些可怕的代码,即:
setTimeout(“setToBlack()”,2000)