关于javascript里面函数优先执行的问题。

            function f(){return 1;}     //函数1
            alert(f());                          

            var f =new Function("return 2;");  //函数2
            alert(f()) ;                       

            function f() {return 3;}  //函数3
            alert(f());                         

            function f(){return 4;}   //函数 4 
            alert (f()) ;                      

            var f = new Function("return 5");  //函数5
            alert(f());                         

            var f = function () {return 6 ;}     //函数6
            alert (f());                       

            //上面这段函数,在运行测试的时候,输出的顺序是4.2.2.2.5.6而教程里面的解析顺序
            //却是4.2.3.3.5.6,这是什么问题?有哪位大神可以和我说一下?谢谢先了

4.2.2.2.5.6 是这个顺序没有错 ,function 定义的函数,会有函数声明提升,会先解析
可以理解为无论定义多个,都会以最后一个为准 。
所以第一个数是4, 第二个是2 ,第三,第四 ,函数声明提升中解析过了,直接跳过。所以还是2

后面就不需要解释了
相当于

         //    function f(){return 1;}     //函数1
            alert(f());                          

            var f =new Function("return 2;");  //函数2
            alert(f()) ;                       

       //     function f() {return 3;}  //函数3
            alert(f());                         

            function f(){return 4;}   //函数 4   这个重复定义,以最后一个为准 。 前面两个相当于被注释掉。这个被提升到第一个函数的位置。
            alert (f()) ;                      

            var f = new Function("return 5");  //函数5
            alert(f());                         

            var f = function () {return 6 ;}     //函数6
            alert (f());