本文目录
- 1. 背景
- 2. JS返回值实现
- 2.1 定义函数
- 2.2 编写函数体
- 2.3 返回值
- 2.4 函数调用
- 3. 函数无返回值的情况
- 4. 小结
1. 背景
之前,我们了解了,函数其实就是经验的复用体,函数包括的是一些操作执行的步骤。
再说的透彻一点,函数其实就是去做一件事,可以把事情封装为函数。
那么就有一个问题,做事情是不是要有结果?比如学车,我们需要知道学会了吗?比如网购,我们需要知道买了多少东西、花了多少钱。
更简单的例子,比如我们要进行2个数的加法运算,我们希望得到的结果是两个数的和。
OK,所以说,做事要有结果;同理,执行函数也要有结果,在JS函数里面,结果称之为返回值
。JS语言里面,函数通过返回值来表达结果的概念。
2. JS返回值实现
我们以计算两个数字的和为例,来演示JS函数返回值的实现。
2.1 定义函数
我们编写一个函数,计算两个数字的和。
// 计算2个数字的和
function add(a,b){
}
我们解释下上面的代码:
-
// 计算2个数字的和
是注释,用来说明函数的用途。 -
function
用来定义函数,说明后面JS代码是函数的定义部分。 -
add
是函数名称,也就是说,这个函数要做的事情是加法。 -
(a,b)
是函数的参数,也就是我们要计算其和的两个数字,JS函数通过小括号来容纳参数,小括号内部的就是参数。 -
{}
大括号里面的部分就是函数体,也就是具体函数的操作步骤了。需要注意的是,大括号里面可以使用参数,因为参数就是为函数体提供辅助信息的。
2.2 编写函数体
我们现在,在函数体内编写计算a,b之和的过程,当然这个计算和的过程非常简单。代码如下:
// 计算2个数字的和
function add(a, b) {
var sum = a + b;
}
上面的代码中,我们使用变量sum来保存a,b的和,完成了a+b的运算。
2.3 返回值
当我们的运算结束后,我们这个函数就有结果,也就是加法的结果。此时我们可以通过return
来返回函数的运算结果。如下:
// 计算2个数字的和
function add(a, b) {
var sum = a + b;
return sum;
}
当执行return sum;
语句时,表示函数执行结束,且函数整个执行的结果为return
后面的内容也就是sum
,所以该函数的运行结果就是sum的值。
2.4 函数调用
我们函数编写完成后,我要使用函数。看下面的代码:
add(1, 2);//计算1+2的和
上面的代码运行后,会计算1+2的和,然后函数的返回值sum值为3,但是虽然有返回值,但是返回值并未被使用。
那么如何使用呢?我们可以将函数的返回值,赋值给一个变量,如下:
var result=add(1, 2);//计算1+2的和
在上面的代码中,我们知道赋值运算符=
,是要先执行右边的部分,然后把右边的计算结果赋值给左边的部分。
那么在执行右边的部分,也就是add(1,2)
时,add是一个函数,所以会执行函数体,同时把1,2作为参数传递给a,b,所以函数计算结果sum为1+2=3。然后函数的返回值就是3,所以add(1,2)
这个函数的运算结果就是3 。
最后将3赋值给result,所以result保存的值就是函数的返回值,也就是函数的运算结果。
3. 函数无返回值的情况
还有一种特殊情况,就是函数没有返回值,也就是没有return语句。例如:
function add(a, b) {
var sum = a + b;
}
var result = add(1, 2);
console.log(result);
在上面的代码中,虽然计算了a+b,但是没有使用return返回值。
所以说add函数没有返回值!这种情况下,一个没有返回值的函数,运行结果赋值给了result,那么result会得到什么东西呢?
我们直接看结果:
这个结果非常合理,因为我们没有明确的通过return指定返回值,所以返回值是未定义,在JS里面表达未定义这个含义的数据类型就是undefined
。
4. 小结
干事要有结果,函数要有返回值!
干事也可以光安排,不要结果;那么函数也可以没有返回值。
所以说程序世界,和现实是相通。