函数
函数
一、函数的概述:
函数就是把特定功能的代码抽取出来(多行代码的抽取),使之成为程序中的一个独立实体。(方法)
二、函数的优点:
1, 函数可以在同一个程序或其他程序中多次重复使用(通过函数名调用)
2, 使程序变得更简短而清晰(特定的代码使用函数包起来也叫函数封装) , 提高可读性
3, 有利于程序维护
4、减少冗余代码(重复的代码放在函数里面,需要的时候调用)
三、函数的分类:
-
-
内置函数 所有的内置对象里面的函数 都叫内置函数 (Math.pow())
-
用户可以根据实际需求, 对特定的功能使用函数来封装
定义函数的语法格式:
function 函数名() {
代码块;
}
注意:
1, 必须使用function关键字, 且为小写, 函数名可以自己给定
2, 函数名的命名规则和变量名一致
3, 函数名后必须写圆括号()
匿名函数(声明比较少,他没有服用价值)
3、使用 new Function方式
函数的嵌套
函数的抽取(抽取冗余的代码)
-
参数(可变的内容)
-
返回值(我们想从这个函数得到什么)
五、
预编译会做的事情
1、他会声明对应的function和var关键词修饰的变量(开辟内存的操作)
2、对应的function的内存空间开辟以后他会将对应的代码块放到其中 等待调用
3、var修饰的关键词 只会开辟一个空间 并不会进行赋值(默认给他一个undifined的值)
return关键词
1、return返回对应的数据的 他是在函数内容进行数据返回的(当你调用了return操作后 后面的内容就不再执行了)
2、如果没有return关键词 返回的是一个undefined的值
六、
1、把对应的开辟的function内存里面的代码块丢给方法栈(执行栈)去执行
2、执行栈就会自动去执行对应的方法 执行完返回对应的结果
3、当结果返回完毕以后 对应的执行栈里面的内存空间要进行回收(GC)将这个内存空间进行销毁
七、函数作用域
1、作用域
当前一个变量的作用范围 分为局部作用域(在一个函数内声明的或者是在一段代码块内声明的他的作用范围就是当前的代码块)和全局作用域(在对应的全局声明的 他的作用范围就是全局的)
2、作用域链
当前的作用域内没有找到对应的变量就会向上寻找 而这个过程构成的链式结构称为作用域链
八、函数的arguments(参数数组 参数的集合)
arguments是一个伪数组(有部分的数组特性)(可以通过length属性来获取对应的长度 []下标来访问里面的元素)
访问
-
访问 length属性访问长度
-
[]加下标(从0)开始访问里面的元素
九、
2、input框的值获取 value属性
3、点击事件 onclick
示例:
十、递归算法
递归三要素
-
找规律
-
找临界值(没有规律的值)return
-
自己调自己(在函数内部调用自己的函数)
递归调用的方式:
1. 首先去找临界值,即无需计算,获得的值(一般是返回该值)。
2. 找这一次和上一次的关系(一般从后往前找)
3. 假设当前函数已经可以使用,调用自身计算上一次的运行结果,再写出这次的运行结果。
示例:
1、2 4 6 8 10 第100位的值是什么
2、 1 3 6 10 15 第100位 前一位+对应的位数=这一位的值


bfs 广度优先搜索 dfs 深度优先搜索(递归思想)
十一、练习题:



4、写一个函数判断一个年份是不是闰年
5、写一个函数判断一个数是不是素数 (又称质数,除了1和本身以外不再有其他数整除)
6、年月日分别为自定义函数的参数,判断某一个日期是否为合法的日期;

方法2:
7、 用递归实现:

8、用递归实现:

9、写个函数计算所有传入参数相乘的结果(参数数量不定)
10、 写个函数实现加减乘除运算(两个操作数, 一个操作符)
11、写个函数实现n的阶
12、找出0-100之间7的倍数,和包含7的数字
13、不用循环,计算0-100以内的数字和
14、制作一个简易计算器(计算两个数的加减乘除, 带可手动输入数字和运算符)
15、兔子繁殖问题,设有一只新生兔子,从第四个月开始他们每个月, 月初都生一只兔子, 新生的兔子从第四个月月初开始又每个月生一只兔子按此规律,并假定兔子没有死亡, n(n<=20)个月月末共有多少只兔子?

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了