Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Honest question: how often does the code ambiguity due to lack of semicolons lead to non-obvious bugs? I'm nowhere close to being a JS expert, but I've done some JavaScript-heavy pet projects and I've got an ambiguous statement interpreted wrong exactly once, and the cause was pretty obvious within a minute of looking at the error.


In my experience, precisely as often as you write statements that start with a left bracket or paren. E.g.

    [1, 2, 3].forEach( ... )
    (function(){ ... })()
Statements like that are virtually always errors under ASI, but if you avoid them nothing else causes problems.


It's not so much how often it happens, but how freaking hard it is to find the problem by inspection when it does happen.


Linters correctly highlight all the ASI-related that realistically happen. (Or eslint does anyway, can't speak for others.)


Good linters correctly highlight all missing semicolons as a symptom of sloppy, negligent, careless programming (or pointless syntactic showboating). It's also technically syntactically valid to omit braces around single statements after if, else, for, and while statements, but idiotic and dangerous to do that, too.

https://wiki.c2.com/?FixBrokenWindows

https://www.rtuin.nl/2012/08/software-development-and-the-br...

https://blog.codinghorror.com/the-broken-window-theory/

https://medium.com/@matryer/broken-windows-theory-why-code-q...


If you accidently write a comma instead of semicolon it can have interesting effects.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: