//函数声明: function 函数名(){};
//函数表达式: function 函数名(可写可不写)(){};命名函数表达式,匿名函数表达式
function aaa(){} // 函数声明: 依据上下文判断是否是函数声明
var a=function aaa(){} //命名函数表达式
var a=function (){} //匿名函数表达式
//函数表达式还有以下类型:
(function aaa(){})
~function aaa(){}
-function aaa(){}
+function aaa() {}
!function aaa(){}
//函数表达式和函数声明的区别:
//1:函数表达式是可以在后加括号执行,而函数声明不可以。
var a=function aaa(){alert(1);}(); //1
//2:函数声明是可以提前被解析出来的。
if(true)
{
function aaa()
{
alert(1);
}
}else
{
function aaa()
{
alert(2);
}
}
aaa() //火狐下弹出1 IE下弹出2
//换成函数表达式都弹出1
if(true)
{
var a=function aaa()
{
alert(1);
}
}else
{
var a=function aaa()
{
alert(2);
}
}
a() //1
aaa() //IE8以下版本: 弹出1 火狐:报错