码迷,mamicode.com
首页 > 其他好文 > 详细

函数声明与函数表达式

时间:2016-02-16 18:59:29      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

两者看着很像。

函数声明:function 函数名(){}

函数表达式:function 函数名(可写可不写)(){}  :命名函数表达式/匿名函数表达式

 

举几个例子:

function aaa(){}  :函数声明

var a=function aaa(){}  :命名函数表达式

var a = function(){}  :匿名函数表达式;

(function aaa(){}) :表达式

区别:

1.函数表达式可以直接后面加括号执行,而函数声明不行

function aaa(){alert(1);}() (错误)

var a=function aaa(){alert(1);}()     (直接运行)

2、  函数声明可以被提前解析出来

if(true){function aaa(){alert(1);}}

else{ function aaa(){alert(2);}};

aaa();   执行结果不确定,可能 1,可能2,因为函数声明被预解析,aaa在if之前就被解析完了

 

if(true){var a=function aaa(){alert(1);}}

else{ var a= function aaa(){alert(2);}};

a();   执行结果为1   先执行的if语句。

 

3、  匿名函数与命名函数的区别

var a=function aaa(){alert(1);}

a(); 所有浏览器都支持

aaa();非ie报错 但是把aaa放在函数里面 则可以。ie会将其解析为a()和aaa();

 

(function aaa(){alert(1)})

aaa()   非ie报错。

函数声明与函数表达式

标签:

原文地址:http://www.cnblogs.com/mian-bread/p/5193419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!