使用我自己的Javascript倒数计时器/番茄时间技术

时间:2019-01-05 13:43:41

标签: javascript

由于我一直在看YouTube上的教程并阅读《 Head First Javascript》,一直在教自己如何用JavaScript编码,所以我决定通过构建对我来说非常有效的东西-Pomodoro技术来应对自己的挑战!自从我开始学习JavaScript以来,就一直在使用这种技术。当我想到JavaScript编码挑战时,涉及数组,函数,DOM等。我想为什么在5分钟的休息时间里不可以进行一系列活动的Pomodoro技术,即25和5的函数分钟计时器,然后使用HTML和CSS设置其样式。无论如何,这是到目前为止的代码...

    <script>

        function startTimer() {
            var timer = document.getElementById("myTimer").innerHTML;
            var arr = timer.split(":");
            var hour = arr[0];
            var min = arr[1];
            var sec = arr[2];
            if (sec == 0) {
                if (min == 0) {
                    if (hour == 0) {
                        alert(pushup());
                        window.location.reload();
                        return;
                    }
                    hour--;
                    min = 60;
                    if (hour < 10) hour = "0" + hour;
                }
                min--;
                if (min < 10) min = "0" + min;
                sec = 59;
            }
            else sec--;

            if (sec < 10) sec = "0" + sec;

            document.getElementById("myTimer").innerHTML = hour + ":" + min + ":" + sec;
            setTimeout(startTimer, 1000);


        function pushup() {
            var minBreak = ["Do 5 push ups!", "Do 10 push ups!", "Do 15 push ups!",
                         "Do 5 sit ups!", "Do 10 sit ups!", "Do 15 sit ups!",
                         "Clean room!", "Do laundry!", "Walk dog!" ];

            var rand1 = Math.floor(Math.random() * minBreak.length);

            var phrase = minBreak[rand1];
            alert(phrase)
        };
        };


    </script>
</head>

<body onload="startTimer();">
        <p id="myTimer">00:00:10</p>
</body>

我首先逐步创建了俯卧撑功能,这很容易做到,在每个步骤上都设置了警报,所以我也知道自己也走了正确的路。但是,startTime函数是YouTube视频上的副本。尽我所能想出的办法,我一直在努力在浏览器中设置计时器!我唯一可以成功的方法是使用setInterval方法。但是,该视频只有一分钟长,并且无法解释其工作原理。我确保逐行了解它的工作原理,.split方法,为什么要使用多个if语句等。写下注释并确保我理解。现在,当计时器在10秒钟后关闭时,它会随机提醒minBreak琐事之一,成功!但是,然后显示另一个警报,提示“页面未定义”,这是为什么?并且(因为我是创建此语言的新手)您将如何编写此代码?我正在考虑具有不同杂务的多个变量。因此,var pushup将具有1个push up,2个push up等的数组。 var situp将具有1个situp,2个situp等的数组。我应该使用哪种语句或方法,以便math.random可以随机选择许多不同的变量数组之一,而不是全部合并。并不是真的要您向我展示如何完成代码,而是要使用for语句,while,ifs,ifs等方法。对不起,如果这没有道理。。但是,只是试图弥补自己的问题,挑战自我,质疑自己。但同时也需要一位导师/老师给我指路。

1 个答案:

答案 0 :(得分:1)

您收到undefined消息,因为您有两次alert。第二个使用函数返回值来显示,但是该函数不返回任何内容,因此undefined

alert(pushup());

因此,功能pushup会自己执行alert,就像您想要的那样。但是随后函数返回到上面的语句,其中的结果显示在alert中。是undefined

因此您可以通过调用函数来解决此问题:

pushup();

据我了解,这是唯一要解决的问题。