日期:2014-05-16  浏览次数:20341 次

这个是什么意思? !function(){}() ,这是什么? 前面的叹号
!function(){var a=document.getElementById("nav-chaoshi"),b=readCookie("__jda"),c=b?b.split(".")[1]:!1;c&&(hashResult=pageConfig.getHashProbability(c,1e4),5e3>hashResult?a.setAttribute("clstag","homepage|keycount|home2013|07c1"):(a.setAttribute("clstag","homepage|keycount|home2013|07c2"),a.innerHTML='<a href="http://channel.jd.com/chaoshi.html">\u98df\u54c1</a>'))}();


 !function(){}();  

前面的叹号 什么作用?
------解决方案--------------------
function与感叹号
------解决方案--------------------
函数后的();表示要执行这个函数,而(); 要求前面必须是一个表达式。(最后有js表达式的定义)。

所以!的作用是将function(){...}函数体转为一个函数表达式。
同样道理:
~function() {
  ...
}();
一样可行。

但是我们常用的方式是:
(function() {
  ...
})();
我更倾向这种方式,因为简单易读。
------解决方案--------------------
function(){}是一个匿名函数,后面的()表示执行这个函数,!表示反转结果