这段代码是干什么用的?(只是好奇)

What is this piece of code for? (Just Curious)

本文关键字:好奇 干什么 代码 段代码      更新时间:2023-09-26

这只是一个纯粹出于好奇的问题,我不是在寻找帮助修复任何东西,我只是想知道一段特定的代码是用来做什么的。

下面是我看到的倒计时计时器的完整函数:

countdown('countdown', 0, 30);
function countdown(element, mins, secs) {
    var time = mins * 60 + secs;
    var interval = setInterval(function () {
        var display = document.getElementById(element);
        // Setting green for initial startup
        if(time == 30) {
            document.getElementById(element).style.color = "green";
        }
        // Setting yellow for the halfway point
        if(time == 15) {
            document.getElementById(element).style.color = "goldenrod";
        }
        // Setting red for the final 5 seconds
        if(time == 5) {
            document.getElementById(element).style.color = "red";
        }
        // If the timer reaches 0...
        if(time == 0) {
            document.getElementById(element).style.color = "black";
            display.innerHTML = "Time's Up!";
            // Game ends if countdown ends, give results just like above if game was finished
            alert("Quiz complete! You got " + totalCorrect + " correct out of 10.");
            return;
        }
        var mins = Math.floor(time / 60);
        if(mins < 10) mins = "0" + mins;
        var secs = time % 60;
        if(secs < 10) secs = "0" + secs;
        var text = mins + ':' + secs;
        display.innerHTML = text;
        time--;
    }, 1000);

我只是好奇最后一行是什么意思,我从来没有见过在大括号后面给出的值。这是什么意思,又有什么用呢?

我只是好奇最后一行是什么意思,我从来没有见过

来自setInterval方法。

语法如下:

setInterval(function(){alert("Hello")}, 3000);

上面一行表示每3秒(3000毫秒)警报"Hello"。

在你的例子中,它是1000,所以它会在1秒后召回它

以毫秒为单位的间隔时间(因此在本例中是每秒或千毫秒)。

   setTimeout(function(){
       //run this function every x milliseconds
   }, runEveryXMilliseconds);

注意,函数setInterval是用以下签名定义的:

setInterval(callback, interval[, param1, param2, ...])

其中callback表示一个函数,interval表示您希望callback运行的频率。这段代码的作者没有越行声明函数并将其传递给这个函数,而是选择创建一个匿名函数,并将其与这个函数调用直接内联创建。

查看它的一个好方法是折叠第一个参数的内容:

setInterval(function() { ... }, 1000);

,这样我们就可以很容易地看到这是对setInterval的调用。

关于setInterval的更多信息可以在这里找到

这段代码用于将倒计时计时器推送到DOM元素。有一个战利品在这个小提琴

当时间小于15秒时,它通过将颜色定义为goldenrod来更新时间即将过期的dom。当时间低于5秒时,它更新dom大约相同的计时器,但颜色为red

基本上是由setInterval()完成的,它每秒循环一次,并更新关于计时器

的DOM。