JavaScript函数

什么是函数

是JavaScript代码,被定义一次,也可以知道调用多次。
也是对象,同对象操作和传递,既函数对象。
函数体内没有写没有return 返回为undefind。

函数申明

function add(){}

函数表达式

var add = function(){}
(function(){})();
return function(){}
var add = function foo(){}

命名函数表达式

var add = function foo(){}
add === foo //ie6-8 返回false
add === foo //ie9+:报错 获取不到foo 

什么时候用命名函数表达式?

命名函数表达式可以递归调自己。

函数构造器

//可以不用new
var fun = new Function('a','b','console.log(a+b)')
fun(1,2);//3:
var fun = function(a,b){
return console.log(a+b);
}
fun(1,2) //3

构造器,作用域

//构造器内部变量外部无法访问
Function('var localVal = "local";console.log(localVal)')();
console.log(typeof localVal);//undefined

//可以读取外部变量,无法读取方法内的变量
var globaVal = 'global';
(
	function(){
	var locaVal = 'local';
	Function('console.log(typeof locaVal,globaVal)')();
	}
)();//undefined global

//funcation 都可以读取内部和外部变量
var out = 'out';
(
	function(){
	var ins = 'in';
	(
		function(){
		console.log(out, ins);
	})()
	}
)();//out in 

函数申明/函数表达式/构造器区别

函数声明:可以被前置,在定义时,可以通过函数名调用。不允许匿名。不能立即调用

函数表达式:允许匿名,可以立即调用。需要赋值给变量调用。

函数构造器:允许匿名,可以立即调用,没有函数名,需要赋值给变量调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值