Why avoid increment (“++”) and decrement (“–“) operators in JavaScript?

One of the tips for jslint tool is:

++ and --
The ++ (increment) and -- (decrement)
operators have been known to contribute to bad code by
encouraging excessive trickiness. They
are second only to faulty architecture
in enabling to viruses and other
security menaces. There is a plusplus
option that prohibits the use of these
operators.

I know that PHP constructs like $foo[$bar++] may easily result in off-by-one errors, but I couldn’t figure out a better way to control the loop than a:

while( a < 10 ) do { /* foo */ a++; }

or

for (var i=0; i<10; i++) { /* foo */ }

Is the jslint highlighting them because there are some similar languages that lack the “++” and “--” syntax or handle it differently, or are there other rationales for avoiding “++” and “--” that I might be missing?

18 Answers
18

Leave a Comment