JS定义函数

定义函数有三种方式:1,function fun()这种叫函数申明;2,var fun=function()这种叫函数表达式;3,var fun=new Function()也叫函数表达式。
在同一个执行环境中,函数申明不管是在什么位置,都会被提升至代码的最前面,即便前面是函数表达式,这个是js的规则。

例题:

function fun (){
                        alert(0);
                       }
fun();

var fun = function (){
                                 alert(1);
                                }
fun();

var fun =function (){
                                 alert(2);
                               }
fun();

function fun (){
                        alert(3);
                       }
fun();

答案:3122


最先执行的肯定是第一个fun(),它指向最后的那个function fun ()。然后又执行第二个fun(),它指向第一个var fun = function ()。然后执行第三个fun(),第二个var fun = function ()覆盖第一个,因为js没有重载的方法,所以就是这么个运行流程。

等同于代码变成了这样:

function fun (){
                        alert(0);
                       }

function fun (){
                        alert(3);
                       }
fun();

var fun = function (){
                                 alert(1);
                                }
fun();

var fun =function (){
                                 alert(2);
                               }
fun();

fun();
原文地址:https://www.cnblogs.com/Decmber/p/4758903.html