持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第25天,点击查看活动详情
把一段相对独立的具有特定功能的代码块封装到 {} 中,形成一个独立的代码块,再给这个代码块起个名字,名字和代码块的组合就是函数,一个函数可以在后续开发中重复使用。
函数的定义
跟变量的定义类似,函数也有自己的定义格式。语法格式:
//命名函数
function 函数名(){ // 函数体 }
function:关键字
函数名:遵循变量的命名规则和规范
():固定格式
{}:封装具有特定功能的代码
函数体:要实现的功能代码
// 定义函数
function fcName() {
console.log("你好!");
}
注意:函数声明的时候,函数体并不会执行,只有当函数被调用的时候才会执行。
函数的调用
语法格式:
函数名();
fcName();
函数的执行流程
函数调用完毕之后(执行到函数最后的大括号 }),程序会回到调用处,执行完调用处的代码,再往下继续执行!
举例:求1-100之间所有数的和
console.log(1);
function getSum() {
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum = sum + i;
}
console.log(sum);
}
console.log(2);
getSum();
console.log('函数调用结束');
//打印结果
1
2
5050
函数调用结束
函数的参数
函数参数的存在可以使函数面对不同情况下都可以执行。
语法格式
function 函数名(形参1, 形参2, 形参...){ // 函数体 }
注意:参数有形式参数和实际参数之分。
- 形式参数:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称之为形式参数,也叫形参。
- 实际参数:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传入的参数叫做实际参数,也叫实参。
函数的返回值
当函数执行完的时候,并不是所有时候都要把结果打印。我们期望函数给我一些反馈(比如计算的结果返回进行后续的运算),这个时候可以让函数返回一些东西,也就是返回值。函数通过return返回一个返回值。
function 函数名(形参1, 形参2, 形参x, ...){
//函数体
return 返回值;
}
var 变量 = 函数名(实参1, 实参2, 实参3);
函数的调用结果就是返回值,因此我们可以直接对函数调用结果进行操作。
返回值的不同情况:
- 如果函数中没有写
return,那么函数有默认的返回值:undefined; - 如果函数中写了
return,但return后面没有任何值,那么函数的返回值也是:undefined; - 如果函数中写了
return语句,并且return后面跟着一个值,那么该值就是函数的返回值。
注意:在函数的执行过程中,如果遇到
return语句,那么执行完return语句之后,函数就直接返回了,即函数执行结束。
匿名函数
没有名字的函数称作匿名函数。如下这种定义函数的方式叫函数表达式,函数表达式等号右边部分的函数没有名字,叫匿名函数。
var 变量名 = function (形参1, 形参2, 形参x, ...){
//函数体
[return 返回值;]
}
//调用
var 返回值 = 变量名(实参1, 实参2, 实参x, ...);
自调用函数
匿名函数不能通过直接调用来执行,所以需要将其赋值给一个变量,才能完成调用。除了赋值给变量的方式外,还可以通过自调用的方式来调用(执行)匿名函数。
格式:()();
解释:第一个小括号写的是匿名函数的定义,第二个小括号写的是需要给匿名函数传入的参数
(function (num) {
console.log(num);
})(168);
//输出结果:168