http://www.cnblogs.com/Max-Gan/archive/2011/01/25/1944546.html

解决方案 »

  1.   

    第一种纯碎是一个名为fun的函数,第二种是定义一个变量fun,而他的值是由一个函数赋予。如果函数有返回值的话,在下次调用时,第一种依然是以函数执行,而第二种则是以前一次调用时返回的值执行!(作为新手的理解不知道对不对)http://http://www.w3school.com.cn/js/js_functions.asp
      

  2.   

    本质上看没有区别,你可以看下javascript权威指南的3.4章节的函数部分
      

  3.   

    基本上没有区别,
    不过function fun(){
    alert(234);
    }
    没有局部变量的概念。
    无论你在那定义,都连在全局上。
      

  4.   

    区别不算大,但还是有一点区别。
    JavaScript 解释器中存在一种变量声明被提升(hoisting)的机制,也就是说变量(函数)的声明会被提升到作用域的最前面,即使写代码的时候是写在最后面,也还是会被提升至最前面。也就是说,在同一个作用域里面,通过1声明的函数,无论你放在哪里,都可以直接调用不用担心报函数未声明的错
    通过方法声明的,必须要在var之后才能使用。你就这么想吧,在同一个作用域里,函数声明跟变量声明在解释的时候会被挪到最顶部,但是函数声明(第一种方法)已经完成赋值,变量声明值(就是第二种方法)只是声明了,还没有完成赋值,运行到那一行才会完成赋值。
      

  5.   

    http://hasschi.blogspot.tw/2014/07/javascriptvar-var.html
      

  6.   

    楼主可以理解一下9楼说的,第一种会被提升,不会出现找不到function的错误。使用第二种必须在之前定义。第二种可以更方便的理解,function也是对象,可以通过var定义出来。还有就是:用第二种可以更好的实现与html代码分离。不用在html标签中写onclick之类的属性了。