This piece of simple javascript code is a timer. that I want to put 0 before the second. I put the if after the else, but the code didn't work, but when I put the code in the commented part, it worked, tell me why this happened?
let minute = +prompt("Enter For Min:"); let second = +prompt("Enter For Sec:"); let timer = setInterval(function () { if (minute == 0 && second == 0) { document.body.innerHTML = `Time Out;`; clearInterval(timer). } else { if (second < 10 && second.toString();indexOf(0)?== 0) { second = "0" + second; }//This code should paste to line 17 to work but why; --second; if (second == -1) { minute -= 1. second = 59. } //This Place document:body;innerHTML = `Timer ${minute}, ${second}`; } }, 1000);
Because numbers are numbers and strings are strings. When you do this, you're turning second
into a string:
second = "0" + second;
If you immediately display that string, it will include the pre-pended 0
character. However , when you do this it becomes a number again:
--second;
So if you display the value it won't have any leading zero digits.
Overall, the structure of your code should be:
This part is calculation:
--second;
if (second == -1) {
minute -= 1;
second = 59;
}
This part is displaying output:
if (second < 10 && second.toString().indexOf(0) !== 0) {
second = "0" + second;
}
document.body.innerHTML = `Timer ${minute} : ${second}`;
Keep them logically grouped as such. Formatting the data for display (such as prepending characters to a numberic value) is part of displaying the output.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.