函数声明 和 函数表达式
定义函数的方法:
1. 函数声明
2. 函数表达式
3.构造函数
最常用的两个方法是函数表达式和函数声明
函数声明:
1. 有一个特定的名称
function foo(){ }
2. 在代码执行阶段已经可用(在上下文阶段创建)
foo();//输出'foo'
function foo(){ alert('foo'); }
3. 位置:全局上下文中 或者 在一个函数体内
//直接在全局上下文中 function foo(){ //2) 在一个函数体内 function foo2(){} }
函数表达式:
1. 有可选的名称
//匿名函数赋给变量 var foo = function(){} //通过foo()进行调用
//函数表达式也可以有名称 var foo = function _foo(){} //外部通过foo()调用,而_foo()递归时候调用
2.必须出现在表达式的位置
//圆括号内只能是表达式 (function foo(){}); //在数组初始化器内中只能是表达式 [function bar (){}]; //逗号只能是表达式 1,function foo(){}; //自执行表达式 (function(){}())//推荐自自执行函数写法 (function(){})() //函数前面加上一元操作符号 +function foo(){}; -function foo(){}; !function(){}; ~function(){};
3.在代码执行阶段创建
foo();// foo is not function var foo = function(){alert('1')} var f = function (){alert('2')} f()// 输出 '2'