

Javascript and semicolon insertion - mnemonik
http://inimino.org/~inimino/blog/javascript_semicolons

======
orangecat
A horrible Javascript misfeature, second only to default global scope. I
always use semicolons, but as the article notes even if you do that you still
have to be aware of how automatic insertion works.

~~~
notauser
From the article, the only _really_ nasty things are:

    
    
      [a].forEach(fn(){})
      [b].forEach(fn(){})
      // Parses as [a][b]
    
      return
      a+b
      // Parses as return;
    

You would have to work pretty hard to trigger the rest.

I'm curious about the speed trade offs from removing semicolons. You shrink
the source code a little, but does the parser throwing exceptions all the time
bump up execution time?

~~~
barrkel
A parser would not normally handle this kind of thing with exceptions, and any
cost would only be paid once, at parse time when building a syntax tree, not
at execution time. Very few languages interpret text directly, rather than
interpreting trees, as the trees are far easier to work with, more efficient,
etc.

------
mdaniel
I realize this is not the forum for this, but hopefully it will serve as a
warning to others: the linked article does not scroll on the iPhone (horiz or
vert orientation).

"Cool" layouts are all fun and games, but usability is king.

~~~
noblethrasher
It does but you have to use two fingers.

~~~
frofro
Yup, I only learned about this feature a few months ago. It also makes other
apps like the standard Google Reader usable.

------
tszming
Use JSLint: <http://www.jslint.com>

------
cmelbye
Frames? Is it the 90s again?

~~~
inimino
No, there are no frames.

------
pdx
Every since I started using JSMin, I've needed to add semicolons after all my
functions, which is something that I can't seem to remember to do as a habit.

------
mkramlich
this issue and the 'var' keyword are two of the reasons I feel Python is
mostly a superior language. (Not necessarily completely, just overall.)

