才看的一文章  讲到了 上面3个 以及为匿名函数怎么克写
但是 我对 函数声明  和函数表达式的认识却 并非太深刻  嘿嘿
所以 谁来 侃侃...........问个问题
一直知道 
var a =''
(function(){})();
会报错,加;后就不会报告错误 其原因不详  谁来解释下--------------------------------------------------------------------------------------------以下是我看到的
别以为匿名函数只有(function(){})()这中写法..  匿名函数的写法多的很 只要符合条件条件就是把函数声明 转成 函数表达式如  
(function(){alert('1')}());
void function(){alert('2')}();
!function(){alert('3')}();
var c =  function(){alert('4')}();
都是可以的但是function(){alert('xxoo')}()是会报告错误的   因为这是声明

解决方案 »

  1.   

    匿名函数 
    document.onclick = functin (){}
    但是function(){alert('xxoo')}()是会报告错误的  
    因为这是声明 
    上面是个函数表达式,语句不能以函数开头
    所以加上括号(function(){alert('xxoo')}是会报告错误的  因为这是声明 
    )()
      

  2.   

    匿名对象 + 匿名数组
    ({show: function() { alert('zswang 路过.'); }}).show();
    [function() { alert('zswang 路过.'); }][0]();
      

  3.   

    (function(){alert('4')})(); // 这样也可以!按 js 标准语法编写就好了,何必搞些自讨苦吃滴东东,
    有时间不如多看看 OOAD 滴知识,这辈子都用得上!
      

  4.   


    给上面一行加个分号试试,参考:http://blog.silentash.com/2009/06/the-javascript-anonymous-function/
      

  5.   

    to 1  没看懂你的意思
    to 2  这中没见过 学习了
    to 3  我是被面试逼的
    to 4  下午看的就是他的东西............. 
      

  6.   

    匿名函数也有很多好处噢
    减少全局变量还有就是 防止变量冲突(这是cloudgamer说的)
    估计是多个(function(){})()的情况下
      

  7.   

    语言是可类比的,定义和声明都是为语言引入元素,以便可以用在随后的语句表达中,这和人的语言一样。
    而表达式就是表达,就是实际的“说话”了。(function(){})();
    这不单是匿名函数,而是对匿名函数的调用,
    这是js的规定,对刚定义的函数通过在函数体外加入括号可以直接调用。