

Writing great Javascript - neya
http://oli.me.uk/2012/03/14/writing-great-javascript

======
MatthewPhillips
I've never seen the preceding semi-colon like that. It makes perfect sense,
there are a lot of JavaScript coders these days coming from languages like
Ruby and these people often don't use semi-colons, very smart advice to
protect against that!

~~~
pshc
Adding a leading semicolon just in case seems like overly defensive
programming to me. You ought to pick trustworthy tools. If your script
concatenator doesn't work right, I think it's better to fail fast rather than
let things quietly be half-broken all over the place.

~~~
csomar
_You ought to pick trustworthy tools._

Many JavaScript snippets are made to be integrated and added by other people
on their websites.

------
funthree
You really only need one or the other depending on the style of the code you
are using in the rest of your project.

If you write js using semi-colons everywhere:

    
    
        (function () { })(this);
    
        (function () { })(this);
    
        (function () { })(this);
    

If you dont want to use semi-colons unless you have to:

    
    
        ;(function () { })(this)
    
        ;(function () { })(this)
    
        ;(function () { })(this)
    

Basically, never start lines with `(` or `[` without semis and don't throw in
line breaks liberally without understanding what semicolon insertion is going
to happen.

[http://blog.izs.me/post/2353458699/an-open-letter-to-
javascr...](http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-
leaders-regarding)

~~~
user24
But what if you do this:

    
    
        <script src='3rdpartyA.js'></script>
        <script src='yourscript.js'></script>
        <script src='3rdpartyB.js'></script>
    

You need the semicolon at both ends to insulate your script from the unknown
coding style or 3rd party scripts which may be appended or prepended to yours.

If 3rd party A omits a trailing semicolon, or 3rd party B doesn't uses your
semicolon prefix style then by wrapping your script in semicolons you pre-
emptively prevent problems.

I believe this is an example of the wider coding style called "defensive
coding".

~~~
funthree
Or you could actually just read the source code of the libs you are using...

~~~
esrauch
It's pretty easy to miss a terminating semicolon which will waste time, but
the real use case is for people who are writing the libs that other people are
using; they have absolutely no knowledge or control of what other javascript
might be prependend or appended onto theirs.

