//函数声明:function 函数名(){}
//函数表达式: function 函数名(可写可不写的)(){} : 命名函数表达式 匿名函数表达式
//function aaa(){} : 函数声明
//var a = function aaa(){} : 命名函数表达式
//var a = function(){} : 匿名函数表达式
(function aaa(){}) : 表达式
~function aaa(){}
-function aaa(){}
+function aaa(){}
!function aaa(){}
--------------------------------------
//区别:
//1.函数表达式可以直接后面加括号执行,而函数声明是不可以的
//2.函数声明可以被提前解析出来的,火狐弹出1,ie弹出2(函数表达式都弹出1,不会预解析)。
//function aaa(){ alert(1); }();
//var a = function aaa(){ alert(1); }();
//~function aaa(){ alert(1) }();
/*if(true){
function aaa(){
alert(1);
}
}
else{
function aaa(){
alert(2);
}
}
aaa();*/
if(true){
var a = function aaa(){
alert(1);
}
}
else{
var a = function aaa(){
alert(2);
}
}
a();//可以
aaa();//火狐会报错。ie下可以