js function函数

本文深入解析函数的基本概念,包括系统函数与自定义函数的区别,有返回值与执行过程函数,以及普通、匿名、回调、递归和内部函数的特性。讲解了JavaScript函数声明、参数、return语句、arguments对象、.length和.caller用法,涉及局部变量、全局变量和闭包。同时涵盖自执行函数、作用域链和匿名函数特性。

函数


什么是函数?

函数就是一个特定的功能结构。

函数的分类:

是否是系统自带:系统函数和自定义函数

是否具有返回值:具有返回值的函数和执行过程函数。

函数的结构:普通函数、匿名函数、回调函数、递归函数、内部函数。。

函数的声明及特征

JS的函数声明分为2种:声明函数和匿名函数(表达式函数)

格式:function 函数名(参数,参数,参数...){
	函数体;
	[return;]
}
  1. 函数名的规则和变量一直。函数名本质上就是一个变量。

  2. 函数的参数分为形参和实参。

     在函数声明时的()中使用的变量就是形参,就是形式上的参数。
     在调用函数时传入的值或者变量就是实参,就是实际上的参数。
     注意:在JS的函数中,形参不可以设置默认设置,但是形参的默认值为undefined。
    
  3. return的作用

     1.为函数返回一个结果值,函数可以被变变量接收
     2.终止函数的执行。
    
     具有return语句的函数就是具有返回值的函数。
     不具有return语句的函数就是执行过程函数。
    
  4. arguments对象的作用

     1.arguments对象可以接收所有的实参组成的数组,使用arguments[下标]的方式进行访问
     2.arguments对象自带length属性,记录中传入实参的个数.
    
     3.在使用递归函数时,必须使用arguments.callee来调用当前函数本身,而不可以使用变量名,因为函数可能被赋值给其他变量.删除之后可能出错.
    

5.函数.length的作用

	获取当前函数形参的个数.

6.函数.caller的作用

	在JS中函数具有感应效果,可以获取谁在调用当前函数.
	可以用来作为调用函数的判断和比较以便于为不同的函数调用实现不同的功能
	函数.caller建议写为arguments.callee.caller的形式

局部变量和全局变量

局部变量:在函数内部定义,并且仅在函数中有效的变量就是局部变量(形参也是)

全局变量:在页面中声明的变量就是全局变量.

内部函数

1.内部函数不可以在函数外部调用(局部变量)
2.调用过外部函数之后,内部函数依然不可以在函数外部调用(局部变量)
3.内部函数可以在函数内部调用,声明函数不区分先后顺序,匿名函数必须在定义之后

变量的作用域链条

就是在函数外部定义的变量有效范围会想链条一样逐渐向内部函数传递,这就是函数的变量作用域链

匿名函数的特征

格式:var 变量名 = function(){
		函数体
		[return语句]
	};
  1. 关于函数体和函数的参数部分和声明函数没有任何区别.
  2. 调用匿名函数必须在匿名函数赋值之后才可以调用,而声明函数由于预先加载,调用不分先后
  3. 匿名函数调用 使用 变量名()的方式,声明函数采用 函数名() 的方式

闭包

特征:将函数内部的函数返回到函数外部,以便于可以在函数外部通过返回的内部函数访问所有局部变量.

实现方式:

通过全局变量实现
	
	格式:请参考代码

通过返回值实现

	格式:请参考代码

注意:不要随便使用闭包结构.闭包产生全局变量,不会被系统回收.

自执行函数

自执行函数:无需调用就可以执行的函数就是自执行函数.

格式:

(function(形参,形参..){

	函数体中的代码.

})(参数,参数...)

作用:自执行函数的作用就是可以为页面划分多个区域,由于区域都是在函数中,收到局部变量限制,所以每个自执行函数可以认为是一个单独的页面.变量之间互不冲突.

自执行函数只可以执行一次.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值