tool
stylecop
http://www.dyn-web.com/tutorials/obj_lit.php
http://pietschsoft.com/post/2008/10/14/JavaScript-Gem-Null-Coalescing-using-the-OR-Operator.aspx
http://stackoverflow.com/questions/476436/null-coalescing-operator-for-javascript
http://stackoverflow.com/questions/1140089/how-does-an-anonymous-function-in-javascript-work
http://news.cnblogs.com/n/163147/
http://benalman.com/news/2010/11/immediately-invoked-function-expression/
http://www.novogeek.com/post/ECMAScript-5-Strict-mode-support-in-browsers-What-does-this-mean.aspx
http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
anonymous function:because the function is anonymous, so it has no name to execute it.
so put it inside brackets as a expression, then we can regard it as a function to call.
such as
function(msg){alert('ha');}---->anonymous function
function(msg){}('ha');------>invoke the function
but the browser will confuse the function as a function declaration.
so we wrap it inside the brackets as expression.
(function(msg){})-->then we can call it.
(expression)();