函数介绍
函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。
我们知道圆的面积计算公式为: $S = \pi r^2$
当我们知道半径 $r$ 的值时,就可以根据公式计算出面积。假设我们需要计算 3 个不同大小的圆的面积:
const r1 = 12.34;
const r2 = 9.08;
const r3 = 73.1;
const s1 = 3.14 * r1 * r1;
const s2 = 3.14 * r2 * r2;
const s3 = 3.14 * r3 * r3;
当代码出现有规律的重复的时候,您就需要当心了,每次写 3.14 *x* x
不仅很麻烦,而且,如果要把 3.14
改成 3.14159265359
的时候,得全部替换。
有了函数,我们就不再每次写 s = 3.14 *x* x
,而是写成更有意义的函数调用 s = area_of_circle(x)
,而函数 area_of_circle
本身只需要写一次,就可以多次调用。
基本上所有的高级语言都支持函数,JavaScript 也不例外。JavaScript 的函数不但是“头等公民”,而且可以像变量一样使用,具有非常强大的抽象能力。
抽象
抽象是数学中非常常见的概念。举个例子:
计算数列的和,比如: $1 + 2 + 3 + \dots + 100$,写起来十分不方便,于是数学家发明了求和符号 $\sum\limits$,可以把 $1 + 2 + 3 + \dots + 100$ 记作 $\sum\limits _{n=1}^{100} n$ 。
这种抽象记法非常强大,因为我们看到 $\sum\limits$ 就可以理解成求和,而不是还原成低级的加法运算。
而且,这种抽象记法是可扩展的,比如: $\sum\limits _{n=1}^{100} (n^2+1)$
还原成加法运算就变成了:
$(1 × 1 + 1) + (2 × 2 + 1) + \dots + (100 × 100 + 1)$
可见,借助抽象,我们才能不关心底层的具体计算过程,而直接在更高的层次上思考问题。
写计算机程序也是一样,函数就是最基本的一种代码抽象的方式。