`
xiaomiya
  • 浏览: 127423 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

函数声明和函数表达式以及他们的区别

阅读更多

知识点温故而知新 :函数声明和函数表达式以及他们的区别

 

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

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

 

/*function aaa(){}//函数声明

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

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

(function aaa(){})//函数表达式
~function aaa(){}
-function aaa(){}
+function aaa(){}
!function aaa(){}
*/

 

//区别:1,函数表达式可以直接后面加括号可以执行,而函数声明是不可以的

//2,函数声明可以被提前解析出来的,也就是函数预解析

/*function aaa(){
	alert(1);
}()//不执行报错
var a = function aaa(){alert(1)}();

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

 

 

//2,函数声明可以被提前解析出来的,也就是函数预解析

if(true){
function aaa(){
	alert(1);
}
}else{
	function aaa(){
		alert(2);
	}
}
aaa();//FF弹出1,ie弹出2
if(true){
var a = function aaa(){
	alert(1);
}
}else{
var a = function aaa(){
		alert(2);
	}
}
a();//都弹出1
aaa();*///不同浏览器也不同,FF,chorme报错,所以不推荐命名函数表达式在外面调用不到的。
//我们在debugger的时候用命名函数表达式

function aaa(){
	return bbb();
}
/*function bbb(){
	debugger;
}*/
var bbb = (function bbb(){
	return function(){
		debugger;
	}
})();
aaa();

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics