第五部分函数

本文介绍了JavaScript中的函数概念,包括函数作为代码管理工具,参数的使用,返回值的获取,以及函数的嵌套。详细阐述了作用域的两种类型——局部和全局,和预解析的规则。还讨论了不同类型的函数,如普通函数、带参函数、返回值函数、变量函数和匿名函数的定义与调用方式。此外,递归的概念、形式和应用场景也被提及,包括如何通过return实现递归。
摘要由CSDN通过智能技术生成

第五章 函数

一、基本概念

(一)、函数

管理代码的一种工具

(二)、参数

函数括号中用于专门接收, 用户提供数据的变量

使用场合:

当函数中 需要使用 函数外 用户调用时提供的数据

(三)、返回值return

函数中 返回的数据,也叫 函数执行的结果

使用场合:

在函数调用完,用户需要得到函数中的数据,就可以通过函数中的return指令进行设置函数执行完的结果

注意事项:

在函数中 一次只能执行一个return,但可以有多个return语句

如果遇到了return语句,会立刻终止函数的执行

函数名参数返回值 并称 函数的 三要素

(四)、嵌套函数

在函数中 调用了另一个函数

(五)、作用域

1. 概念

起作用的区域

2. 种类

(1). 局部变量

A. 在函数中定义的变量

局部变量只能在 定义它的函数中才有效,出了该函数,将会消失(无效)

(2). 全局变量

在函数外定义的变量

(六)、预解析

1. 概念

在JS中,在代码执行时,会对代码进行位置的设置操作

2. 设置规则

(1). 赋值语句

会把变量定义 提前到 当前作用域的最前面

如果当前作用域 没有定义变量,将会在当前作用域外面进行查找,如果找到了,就把定义变量的指令提前到当前作用域的最前面。如果找不到,继续查找外面,直到找到为止;

如果一直找不到,就会在全局定义一个变量                                        

注意事项:

如果不是赋值语句,那么就不会在最前面定义

(2). 获取 (使用)变量语句

会先在当前作用域中进行查找,如果找到,就直接使用,如果找不到,机会到当前作用域外面再进行查找,直到找到为止;如果找不到,会直接报错

(3). 函数预解析规则

A. 普通函数

预解析后直接提前

(七)、作用域提升

在JS中,当使用某个变量时,会先在当前作用域(函数)中进行查找,如果找不到,就会到当前作用域的外面进行查找,直到找到为止

如果找不到,赋值语句会在全局定义一个变量,获取语句会直接报错

二、函数的种类

(一)、普通函数

1. 格式

function 函数名(){

   JS代码

}

2. 调用:

(1). 直接调用

函数名()

(2). 嵌套调用

在一个函数中调用另一个函数

注意事项:

嵌套调用绝对不能形成闭环,否则将会报错(栈内存溢出)

(二)、带参函数

1. 格式:

function 函数名(参数1,参数2...){

    JS指令

}

2. 调用

函数名(数据1,数据2...)

3. 参数特点

(1).前面不需要写var

(2).只能写在函数名后的小括号中

(3). 自动赋值

(三)、返回值函数

1. 格式:

function 函数名(参数1,参数2...){

JS指令;

return 数据;

}

2. 调用

函数名(数据1,数据2...)

3. 原理

函数是一个表达式,它的值由return后的数据决定,如果没有return,默认为undefined

三、其它函数

(一)、变量函数

1. 格式:

var 变量名=function 函数名(参数1,参数2...){

    JS语句

}

2. 调用

变量名();

3. 原理

使用变量名去替换原来的函数名

原来的函数名将不复存在

(二)、匿名函数

1. 概念

没有名字的函数

2. 调用

(1). 直接调用

在定义的时候 直接调用

注意事项:

如果函数没有名字,在创建的时必须调用一次,否则没机会调用而报错

(2). 变量调用0.

用一个变量把匿名函数存起来,方便需要时调用

3. 使用场合

当一个函数只会被调用一次时,最好采用匿名函数

四、递归

(一)、概念

函数调用的一种方式,即:自己调用自己

(二)、格式

function 函数名(){

    JS指令

    函数名();

}

(三)、作用

实现循环功能

(四)、实现方式

1. 原始递归

   通过全局变量来控制递归

2. 普通递归

   通过参数传递来控制递归

3. return递归

(1). 概念

通过函数中的return语句实现递归

(2). 实现方式

return 调用自己的指令

(3). 案例

实现n的 阶乘

实现获取斐波拉契数列的第n项

(4). 使用场合

需要得到递归后的结果

前后两项之间有联系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值