Logo
Section 1 / 4

函数

学习如何创建、引用和调用函数。

检查点

函数

学习如何创建、引用和调用函数。

函数的概念

可以把函数理解为数学中的函数,它定义了输入变量和输出变量之间的关系。如果你不喜欢数学,也可以把函数想象成一台自动售货机:你投入一些硬币和一个数字,它就会吐出一瓶冰镇可乐。

...
JavaScript 函数
1function add( a, b ) { 2 return a + b; 3}

这个函数定义描述了输入变量 a 和 b 与函数返回值之间的关系。

return 语句用于返回函数的值。当你调用 add 函数并传入参数 a 和 b 时,函数会计算 a + b 的结果并返回。例如:

1function add( a, b ) { 2 return a + b; 3} 4console.log(add( 5, 2 ));

尝试修改函数调用 add(5, 2) 中的输入参数,返回值也会随之改变。试着只传一个参数调用函数,比如 add(5),看看会发生什么。

函数有助于创建可重复使用的代码块,你可以用不同的参数多次调用它们。等你掌握了控制结构的基础知识后,我们将编写更有用的函数。

使用变量作为函数引用

你也可以在不将函数名放在 function 关键字和参数列表之间的情况下定义函数。这种写法特别适合通过变量来引用该函数。记住,变量 subtract 就像一个抽屉的把手,这次你的抽屉里放的是一个函数。

1let subtract = function( a, b ) { 2 return a - b; 3}

调用函数

所有函数都可以通过其引用进行调用:

1let add = function( a, b ) { 2 return a + b; 3} 4 5let subtract = function( a, b ) { 6 return a - b; 7} 8 9let multiply = function( a, b ) { 10 return a * b; 11} 12 13let square = function( a ) { 14 return a ** 2; 15} 16 17console.log(add( 2, 3 )); 18console.log(subtract( 2, 3 )); 19console.log(multiply( 2, 3 )); 20console.log(square( 2 ));

如果函数没有返回任何值?

当函数没有返回任何值时,它的返回值就是 undefined:

1let empty = function() {} 2console.log(empty())

函数作用域

函数内部的变量与函数外部的变量不是同一个变量。

...
理解函数作用域
1let a = 5; 2function addOne( a ) { 3 a = a + 1; 4 return a; 5} 6 7console.log( addOne( a ) ); 8console.log( a );

函数内部的 a 变量仅在函数的 作用域 内有效。它会 遮蔽 外部的 a 变量。因此,在函数内部对 a 加 1 不会影响外部的 a 值。所以,函数内部对 a 的修改不会影响函数外部的 a 变量。

练习

编写一个函数,接收一个数字数组作为参数,返回数组中的最大值。

示例:

1console.log(max([19, 65, 9, 17, -99])); 2> 65 3console.log(max([])); 4> -Infinity
1function max( arr ) { 2 // 在这里编写你的代码 3}

Quiz

单选题

调用函数 changeFruit 后,fruit 的值将是 ['apple', 'mango', 'orange']。

1 / 1

数组详解

typeof 操作符