簡體   English   中英

JavaScript setInterval

[英]JavaScript setInterval

這是關於setInterval的教程中的一個例子,但它並沒有為我的新手大腦解釋它。 如果你能回答這些問題,我將不勝感激

i)1000 millesecond計時器是否表示每秒觸發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是像素的縮寫,是像素的縮寫。

iii) x在函數之外定義,因此每次都會持續存在。 每次調用該函數時, x都會大10。 如果在函數中定義了x ,則每次調用它都會為10。

i)setInterval將每秒運行moveElement函數。 如果是setTimeout,它只會在1秒后運行一次。

ii)看起來就是它的作用。

iii)在這種情況下,x未在函數moveElement中的任何位置聲明,因此它會嘗試查找它在頂部執行的全局變量。 所以是的,它會將新值存儲在函數外部的x中。

i)這將幫助您理解setTimeout和setInterval: http//www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/

ii)添加“px”(表示“像素”)以將有效屬性值分配給具有單位“px”的“style.left”。

iii)是的,它取代了值,因為var x已在函數外聲明,因此是一個全局變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM