Eu estava trabalhando com alguns eventos em JavaScript e precisava alternar o estado de alguns objetos de tela ao pressionar um botão. Normalmente vejo colegas meus escrevendo algo como:
var toggle = 0;
var chmodButton = document.querySelector("#chmod");
chmodButton.addEventListener("click",function(){
if(toggle == 0){
toggle = 1;
}
else{
toggle = 0;
}
});
o que é totalmente bom. Funciona. Mas por que não mudar a função que é chamada quando o evento acontece para algo assim:
chmodButton.addEventListener("click",function(){
toggle = (toggle+1)%2;
)};
Ele pula a if(...)
parte e você tem uma bela linha de código que muda a variável de 0 para 1 para 0 e assim por diante …
Outra maneira de fazer isso (obrigado a @piatra pela sugestão) é usar em var toggle = true
vez de var toggle = 0
e alterar o código dentro da função de evento para:
chmodButton.addEventListener("click",function(){
toggle = !toggle;
)};
Além disso, como observação lateral, isso não é especificamente para JavaScript, apenas escrevi aqui assim 🙂