javascrip 函数声明和函数表达式

//函数声明:  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   火狐:报错

 

posted @ 2013-05-16 22:32  zhangchun  阅读(188)  评论(0编辑  收藏  举报