导入
发现函数
了解函数的基本概念
函数的作用
为了理解函数的重要性,让我们回到之前的墨西哥卷饼算法。
1开始 2 取出电饭锅 3 向其中加入米饭 4 向其中加入水 5 煮米饭 6 切蔬菜 7 翻炒蔬菜 8 尝一下蔬菜的味道 9 如果蔬菜味道好 10 把蔬菜从炉子上拿下来 11 如果蔬菜味道不好 12 加更多胡椒和香料 13 如果蔬菜还没熟透 14 继续翻炒蔬菜 15 加热玉米饼 16 在玉米饼中加入米饭 17 在玉米饼中加入蔬菜 18 卷起玉米饼 19结束
下面是用另一种方式表达的相同思路。
1开始 2 煮米饭 3 翻炒蔬菜 4 添加馅料 5 卷起来 6结束
第一个版本详细列出了烹饪过程中的每一个具体步骤。第二个版本将食谱分解为更宏观的步骤,并引入了可以用于其他菜肴的通用概念,如“煮”、“翻炒”、“添加”和“卷起”。
到目前为止,我们的程序都模仿了第一种写法,但现在是时候将代码拆分为更小的子步骤,以便按需重复使用。在 JavaScript 中,这些子步骤被称为 函数!
发现函数
函数 是一组执行特定任务的语句。
下面是一个基本的函数示例。
1function sayHello() { 2 console.log("Hello!"); 3} 4 5console.log("程序开始"); 6sayHello(); 7console.log("程序结束");
让我们来分析一下刚才发生了什么。
声明函数
查看下面示例的第一行代码。
1function sayHello() { 2 console.log("Hello!"); 3}
这创建了一个名为 sayHello() 的函数。它只包含一条语句,会在控制台输出消息:"Hello!"。这是一个函数 声明 的例子。
1// 声明一个名为 myFunction 的函数 2function myFunction() { 3 // 函数体代码 4}
函数的声明使用 JavaScript 关键字 function,后接函数名和一对括号。构成函数的语句称为函数的 主体,它们被大括号包围并进行缩进。
调用函数
函数必须被调用才能真正运行。以下是程序的第二部分。
1console.log("程序开始"); 2sayHello(); 3console.log("程序结束");
第一行和第三行明确地在控制台显示消息。第二行对函数 sayHello() 进行了 调用。你可以通过写出函数名称并加上一对括号来调用函数。
1// ... 2myFunction(); // 调用 myFunction 3// ...
调用函数会触发其内部列出的动作(即函数体中的代码)执行。执行完成后,程序继续从调用的位置往下运行。

chapter05-02.png
函数的实用性
一个复杂的问题通常在被拆解为若干简单子问题后更容易处理。计算机程序也不例外。当程序由多个简短且专注的函数组合而成时,相比单一庞大的程序,它会更易于理解与维护。此外,某些函数还可以在其他程序中复用!
创建函数也是解决代码重复问题的一种方法:代码重复是指一段源代码在程序中多次出现的情况。与其在多处重复,不如将某段代码集中在一个函数中,需要时从任何地方调用即可。