05-JS中的函数
码路教育 6/29/2022
# 1 - 函数
# 1.1 函数的概念
在 JS 里面,可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用。虽然 for循环语句也能实现一些简单的重复操作,但是比较具有局限性,此时我们就可以使用 JS 中的函数。
- 函数:函数其实就是某段代码的封装,这段代码帮助我们完成某一个功能
- 默认情况下JavaScript引擎或者浏览器会给我们提供一些已经实现好的函数
- 我们也可以编写属于自己的函数
- 在开发程序时,使用函数可以提高编写的效率以及代码的重用
目前, 我们已经接触过几个函数了
- alert函数
- prompt函数
- console.log函数
- String/Number/Boolean函数
# 1.2 函数的创建方式
函数的使用包含两个步骤:
- 声明函数 —— 封装 独立的功能
- 调用函数 —— 享受 封装 的成果
# 声明函数
- 声明函数的过程是对某些功能的封装过程
- 开发中,我们会根据自己的需求定义很多自己的函数
- 声明函数使用function关键字:这种写法称之为函数的定义
// 1.最常用的 使用function声明
function fn(){
}
// 这里是声明+定义 声明就是起名字 定义就是定义内容
// 2.通过赋值实现 =后面是一个匿名函数
var gn = function(){
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
注意细节:
- 函数名的命名规则和前面变量名的命名规则是相同的
- 函数定义完后里面的代码是不会执行的,函数必须调用才会执行
- 函数要尽量做到见名知意
- 由于函数一般是为了实现某个功能才定义的, 所以通常我们将函数名命名为动词,比如 getSum
# 调用函数
- 调用函数是让已存在的函数为我们所用
- 可以是自己写的函数,也可以是系统中内置的,也可以是第三方的
- 调用的时候千万不要忘记添加小括号
// 调用函数
// 调用函数通过函数名()即可
函数名(); // 通过调用函数名来执行函数体代码
function work(){
console.log('工作');
}
work()
1
2
3
4
5
6
7
2
3
4
5
6
7
# 1.3 局部变量和全局变量
- 局部变量就是只能在一定范围内使用
- 全局变量就是在全局哪里都可以使用
- 一般情况下 你在script标签下面用var let const声明的 都是全局的
- 在函数中用var let const声明的 一般是局部的
- 不论在哪里 直接 a=1 直接定义的这种 就是全局的
function fn(){
var b=2;//b是一个局部变量
c=3;//这是一个全局变量
var a=4;//这里的a是局部
console.log(a);
}
fn()
console.log(a);
console.log(c);
// 此时的a是一个全局变量
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 1.3 函数的参数
# 函数参数语法
函数的参数,增加函数的 通用性,针对 相同的数据处理逻辑,能够 适应更多的数据:
- 形参:定义 函数时,小括号中的参数,是用来接收参数用的,在函数内部 作为变量使用
- 实参:调用 函数时,小括号中的参数,是用来把数据传递到 函数内部 用的
// 带参数的函数声明
function 函数名(形参1, 形参2 , 形参3...) { // 可以定义任意多的参数,用逗号分隔
// 函数体
}
// 带参数的函数调用
函数名(实参1, 实参2, 实参3...);
1
2
3
4
5
6
2
3
4
5
6
// 参数就是 你要提供给该功能的数据
// 比如你现在去买衣服 那你需要给客服提供你的身高和体重 然后客服会给你推荐相应的尺码
// 你提供的这个数据 就叫做参数
// 我们把这个事情映射到我们的代码中
// 那就是买衣服是一个函数
function shopping(money){
// 我想根据提供的钱数 推荐一款手机
// 这里拿到钱数 映射成代码的意思 就是 我函数外部 如何提供一个数据到函数内部
// 那我们就需要使用参数
// 比如我现在需要接收一个参数
// 这里的这个money就是用来接收 我外面提供的数据 这个叫做形参 形式参数
console.log(money);
}
// 现在我要买手机了
shopping(2000);//这里的2000是实参 实际参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
注意细节:
- 调用的时候实参值是传递给形参的
- 形参简单理解为:不用声明的变量
- 实参和形参的多个参数之间用逗号(,)分隔
全局变量和局部变量:
- 定义在函数内部的变量是局部变量
- 定义在函数外部的变量是全局变量
# 1.4 函数的返回值
函数不仅仅可以有参数, 也可以有返回值
- 使用return关键字来返回结果
- 一旦在函数中执行return操作,那么当前函数会终止
- 如果函数中没有使用 return语句 ,那么函数有默认的返回值:undefined
- 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined
// 声明函数
function 函数名(){
...
return 需要返回的值;
}
// 调用函数
函数名(); // 此时调用函数就可以得到函数体内return 后面的值
1
2
3
4
5
6
7
2
3
4
5
6
7
break ,continue ,return 的区别
- break :结束当前的循环体(如 for、while)
- continue :跳出本次循环,继续执行下次循环(如 for、while)
- return :不仅可以退出循环,还能够返回 return 语句中的值,同时还可以结束当前的函数体内的代码
# 1.5 匿名函数和具名函数
<script>
// 匿名函数 就是没有名字的函数
// 具名函数 就是有名字的函数
function a(){
console.log(1);
}
// 以上函数是具名函数
var b=function(){
}
// 以上的右边 是一个匿名函数
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13