哪位高人说一下javascript 函数三种写法的区别,特别是function f(){}和var f=function(){}的区别

解决方案 »

  1.   

    他们区别不大,而且大多数情况下,我们不需要知道他们的区别。但是一些极少数情况,他们会有区别:function f(){
      alert(1);
    }
    f();//这里执行alert(2);
    function f(){
      alert(2);
    }
    f();//这里会执行alert(2);和var f=function(){
      alert(1);
    }
    f();//这里执行alert(1)
    f=function(){
      alrt(2);
    }
    f();//alert(2);
    桌面版本的Csdn——《Csdn收音机》,点击查看详细!
      

  2.   

    还有,=function(){},这样的写法可以当作表达式。
    也就是是有值的,可以做对象使用。《Csdn收音机》是个开源的辅助工具,以后学技术更方便了!
      

  3.   

    a(); // 可以执行
    function a() {
    };
    b(); // b未声明
    var b = function() {
    }第三种?匿名函数?
    var b = function() {} 其实就是把匿名函数赋值给b。
      

  4.   

    实际上你可以在 ActiveScript3.0 编程手册中文PDF版 关于函数那一节找到最标准的Adodbe官方解释
      

  5.   

    var f=function(){}
    这个里面的函数和变量可以导航着取
      

  6.   

    摘自:http://topic.csdn.net/u/20090217/13/653f7949-9e0c-4e99-adb3-dcbc99fca8d5.html?60684
    讲的很透彻
     需要注意的是,尽管下面两种创建函数的方法是等价的:以下是引用片段:
    function funcName(){ 
      //函数体 

    //等价于 
    var funcName=function(){ 
      //函数体 
    }    但前面一种方式创建的是有名函数,而后面是创建了一个无名函数,只是让一个变量指向了这个无名函数。在使用上仅有一点区别,就是:对于有名函数,它可以出现在调用之后再定义;而对于无名函数,它必须是在调用之前就已经定义。例如:以下是引用片段:
    <script language="JavaScript" type="text/javascript"> 
    <!-- 
    func(); 
    var func=function(){ 
      alert(1) 

    //--> 
    </script>    这段语句将产生func未定义的错误,而:以下是引用片段:
    <script language="JavaScript" type="text/javascript"> 
    <!-- 
    func(); 
    function func(){ 
      alert(1) 

    //--> 
    </script>    则能够正确执行,下面的语句也能正确执行:以下是引用片段:
    <script language="JavaScript" type="text/javascript"> 
    <!-- 
    func(); 
    var someFunc=function func(){ 
      alert(1) 

    //--> 
    </script>    由此可见,尽管JavaScript是一门解释型的语言,但它会在函数调用时,检查整个代码中是否存在相应的函数定义,这个函数名只有是通过function funcName()形式定义的才会有效,而不能是匿名函数。