一、函数创建方式
1、函数声明
例如:
function fun(x){
x+=1;
return x;
}
2、函数表达式
//将一个函数表达式赋值给一个变量
var fun =function(x){
x+=1;
return x;
}
//一个立即执行的匿名函数
(function(x){
x+=1;
return x;
})(1);
//直接返回函数,因为函数也是一种对象,所以可以直接返回
return function(){
}
//一种比较特殊的,命名式函数表达式
var fun = function func(x,y){}
函数声明与函数表达式的区别:函数声明会被前置,函数表达式不会
例如:
var a = fun(3);
function fun(x){
x+=1;
return x;
}
此时函数声明会提前,
fun(x);
var a = fun(3);
//此时fun已存在函数,所以执行结果为4;
var a= fun(3);
var fun = function(x){
x+=1;
return x;
}
此时会返回undefined,因为var fun;会被提前,但是赋值语句还未执行,所以上面的代码相当于
var fun;
var a = fun(3)//;此时fun还未赋值会函数,所以返回了undefined