ZetCode

JavaScript function 关键字

最后修改于 2025 年 4 月 16 日

在本文中,我们将展示如何使用 JavaScript 中的 function 关键字创建可重用的代码块。

function 关键字

function 关键字用于在 JavaScript 中定义函数。函数是执行特定任务的可重用代码块。它们有助于将代码组织成逻辑的、可维护的单元。

函数可以接受参数(输入)并返回值(输出)。它们促进代码重用,使程序更容易理解和维护。函数是 JavaScript 中的一等对象。

JavaScript 支持多种函数声明风格:函数声明、函数表达式、箭头函数等。function 关键字用于声明和表达式中。

基本函数声明

以下示例演示了 function 关键字的基本用法,以声明一个函数。

main.js
function greet() {
    console.log('Hello, World!');
}

greet();

这是最简单的函数声明形式。 greet 函数不接受任何参数,也不返回值。它只是在被调用时将一条消息记录到控制台。

$ node main.js
Hello, World!

带参数的函数

函数可以接受参数,以使其更灵活和可重用。

main.js
function greet(name) {
    console.log(`Hello, ${name}!`);
}

greet('Alice');
greet('Bob');

此示例显示了一个接受 name 参数的函数。该函数使用此参数来个性化问候消息。参数允许函数使用不同的输入值。

$ node main.js
Hello, Alice!
Hello, Bob!

带有返回值的函数

函数可以使用 return 语句返回值。

main.js
function square(number) {
    return number * number;
}

const result = square(5);
console.log(result);

此函数计算一个数的平方并返回结果。返回的值可以分配给一个变量或在表达式中使用。没有 return 语句的函数返回 undefined

$ node main.js
25

函数表达式

函数可以使用表达式定义,其中函数被分配给一个变量。

main.js
const multiply = function(a, b) {
    return a * b;
};

console.log(multiply(3, 4));

这是一个函数表达式。该函数是匿名的(没有名称),并被分配给 multiply 变量。函数表达式通常用于回调和方法。

$ node main.js
12

函数提升

函数声明被提升,这意味着它们可以在代码中定义之前被调用。

main.js
console.log(add(2, 3));

function add(a, b) {
    return a + b;
}

这之所以有效,是因为函数声明在编译期间被移到其作用域的顶部。请注意,函数表达式不会以相同的方式被提升。

$ node main.js
5

默认参数

JavaScript 支持函数的默认参数。

main.js
function greet(name = 'Guest') {
    console.log(`Hello, ${name}!`);
}

greet();
greet('Alice');

当未提供参数时,默认参数提供回退值。这使得函数更加灵活,并减少了对参数验证代码的需求。

$ node main.js
Hello, Guest!
Hello, Alice!

剩余参数

函数可以使用剩余参数接受不定数量的参数。

main.js
function sum(...numbers) {
    return numbers.reduce((total, num) => total + num, 0);
}

console.log(sum(1, 2, 3));
console.log(sum(1, 2, 3, 4, 5));

剩余参数将所有剩余参数收集到一个数组中。这对于需要处理可变数量参数的函数很有用。该示例显示了一个对任意数量的值求和的函数。

$ node main.js
6
15

来源

function - 语言参考

在本文中,我们演示了如何使用 function 关键字在 JavaScript 中创建可重用的代码块。

作者

我的名字是 Jan Bodnar,我是一位充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。到目前为止,我撰写了超过 1,400 篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

查看 所有 JavaScript 教程。