Uma das dicas para a ferramenta jslint é:
++ e -
Sabe-se que os operadores ++ (incremento) e - (decremento) contribuem para códigos incorretos, incentivando truques excessivos. Eles perdem apenas para a arquitetura defeituosa na ativação de vírus e outras ameaças à segurança. Existe uma opção plusplus que proíbe o uso desses operadores.
Eu sei que construções PHP como $foo[$bar++]
has podem facilmente resultar em erros de um por um, mas não consegui descobrir uma maneira melhor de controlar o loop do que um while( a < 10 ) do { /* foo */ a++; }
ou for (var i=0; i<10; i++) { /* foo */ }
.
O jslint está destacando-os porque existem algumas linguagens semelhantes que não possuem a sintaxe " ++
" e " --
" ou a tratam de maneira diferente, ou existem outras razões para evitar " ++
" e " --
" que eu possa estar perdendo?
++
não causa bugs. O uso de ++
maneiras "complicadas" pode levar a erros, especialmente se mais de uma pessoa estiver mantendo a base de código, mas isso não é um problema do operador, é um problema do programador. Eu não aprendi JS na universidade (porque ainda não existia), mas e daí? Eu fiz C, que é claro que tinha ++
primeiro, mas que também recebe um "e daí?" Não fui à universidade para aprender um idioma específico, fui aprender boas práticas de programação que posso aplicar a qualquer idioma.