There are two reasons for avoiding semis in JS, and similar languages, to wit:
1) Code clarity. Semis do not aid legibility. All they add is sad little bits of fluff that get in the way of your eyes reading the code
2) Symbol overloading. Some us (Yes I am one) do NOT like symbols being overloaded. I esp. hate the way both semi and comma are overloaded in C, Java, etc.
The result is that inside of a for definition (that is the bit in brackets after the word 'for') semis and commas almost reverse their meanings. I just find that so retarded. So, in JS I never use semis EXCEPT where they are required.
Note, that by doing this when you do come across a semi in my code, you DO notice it. Again, improves code clarity.
Cheers
TheIrishman