定义函数
函数定义是一个常规绑定,其中绑定的值是一个函数。 例如,这段代码定义了square
,来引用一个函数,它产生给定数字的平方:
const square = function(x) {
return x * x;
};
console.log(square(12));
// → 144
函数使用以关键字function
起始的表达式创建。 函数有一组参数(在本例中只有x
)和一个主体,它包含调用该函数时要执行的语句。 以这种方式创建的函数的函数体,必须始终包在花括号中,即使它仅包含一个语句。
一个函数可以包含多个参数,也可以不含参数。在下面的例子中,makeNoise
函数中没有包含任何参数,而power
则使用了两个参数:
var makeNoise = function() {
console.log("Pling!");
};
makeNoise();
// → Pling!
const power = function(base, exponent) {
let result = 1;
for (let count = 0; count < exponent; count++) {
result *= base;
}
return result;
};
console.log(power(2, 10));
// → 1024
有些函数会产生一个值,比如power
和square
,有些函数不会,比如makeNoise
,它的唯一结果是副作用。 return
语句决定函数返回的值。 当控制流遇到这样的语句时,它立即跳出当前函数并将返回的值赋给调用该函数的代码。 不带表达式的return
关键字,会导致函数返回undefined
。 没有return
语句的函数,比如makeNoise
,同样返回undefined
。
函数的参数行为与常规绑定相似,但它们的初始值由函数的调用者提供,而不是函数本身的代码。