在ECMASCRIPT中,创建函数最常用的两个方法是函数声明和函数表达式。
1、调用顺序不同
在函数声明前后都可调用该函数。
myfunction(); //可以被调用 function myfunction(){ //执行语句 }
只能在函数表达式创建后,调用该函数。
myfunction(); //不可以被调用 var myfunction = function(){ //执行语句 }
2、调用形式不同
函数声明只能以myfunction()形式调用;函数表达式后面可以加括号立即调用该函数。
3、执行顺序不同
解析器对函数声明和函数表达式读取的顺序不同;
解析器会事先读取函数声明,使之在执行后续代码前可用,即使你把函数声明放在代码末端,依然可以在定义前调用。尽量避免在条件语句中使用函数声明,因为不同的环境(浏览器)可能出现不同的执行结果;
解析器只有在读到函数表达式所在那行代码时才执行,函数表达式只能在定义后调用该函数,将一个匿名函数表达式存储在某个变量中。