I always use semicolons even though they are optional in JavaScript. A key reason for me is convention and javascript minification (although closure compiler will rewrite your js with semicolons inserted). But if you want to know what else could go wrong even if you do not do minification there is actually  only one case. When a line starts with `(` it should have a semicolon before it.
An Example
When you have an immediately executed function to create a new scope:  
// define a function with assignment
var   fn = function () {
   //...
}  // semicolon missing at this line
// then execute some code inside a new scope
(function   () {
     //...
})();
Will get interpreted as : 
var   fn = function () {
     //...
}(function   () {
     //...
})();
The second function will fail with a "... is not a function" error at runtime.
Another example
// careful: will break
a = b + c
(d + e).print()
// Will get interpreted as:  
a = b + c(d + e).print();
Alternate Solution
; (d + e).print()
Its also potentially a good idea when your file starts with '(' since if someone (who does not use semicolons) does concatenation of your file it might become a problem. 
Complete overview:   http://mislav.uniqpath.com/2010/05/semicolons/
An example was from this answer:   http://stackoverflow.com/a/1169596/390330 
No comments:
Post a Comment