Сделал обычный секундомер. По пробелу он запускается и также останавливается. Однако некоторые переменные определены глобально. Как можно изменить архитектуру кода, чтобы это было написано максимально "профессионально", если так можно сказать
P.S. Под профессионально, я имею ввиду как можно сделать такой же функционал только более лаконично. Условно говоря, если бы я писал этот таймер в продакшн
Вот код:
const hours = document.querySelector('.clocks .hours')
const minutes = document.querySelector('.clocks .minutes')
const seconds = document.querySelector('.clocks .seconds')
document.addEventListener('keydown', startBySpace)
let timer;
function startBySpace(e) {
if (e.code === 'Space') {
if (e.__proto__.turn) {
e.__proto__.turn = false
console.log('end');
clearInterval(timer)
}else{
e.__proto__.turn = true
console.log('start');
timer = setInterval(start,1000)
}
}
}
let secCounter = 0;
let minCounter = 0;
let hourCounter = 0;
function start() {
if (secCounter === 59) {
secCounter = 0;
if (minCounter === 59) {
minCounter = 0;
hourCounter++;
} else {
minCounter++;
}
}
secCounter < 10 ? seconds.innerHTML = `0${secCounter}` : seconds.innerHTML = `${secCounter}`
minCounter < 10 ? minutes.innerHTML = `0${minCounter}` : minutes.innerHTML = `${minCounter}`
hourCounter < 10 ? hours.innerHTML = `0${hourCounter}` : hours.innerHTML = `${hourCounter}`
secCounter++;
}