JavaScript 函数


JavaScript函数

函数是JavaScript的基本组成部分之一。一个函数包含一系列的语句,这些语句被定义一次并可以在程序中多次调用。函数允许程序员重复使用代码,减少代码的冗余,提高程序的可读性和可维护性。

Javascript中有两种不同的函数声明方式:函数声明(function declaration)和函数表达式(function expression)。

函数声明

函数声明使用关键字function定义函数名称、参数名称和函数体。例如:

function add(x, y) {
  return x + y; 
}

上述代码中的add函数接受xy两个参数,并返回它们的和。

在函数声明中,函数名称是必须的,这允许我们在代码的其他位置调用函数,如下所示:

add(2,3); // 5

函数表达式

函数表达式定义函数作为表达式的一部分。它们可以匿名,也可以使用一个变量来引用它。例如:

const add = function(x, y) {
  return x + y; 
}

这个函数与上面的例子非常相似,但是把函数的整体放到了一个赋值语句中。这个函数可以使用add变量来引用。变量名称可以随意选择。例如:

(const sum = add)(3,6); // 9

函数表达式中的函数名称是可选的。如果函数没有名称,则称为匿名函数。匿名函数通常用于回调函数或自我调用的函数:

//回调函数
document.addEventListener('click', function(event) {
  console.log('The button has been clicked!');
});

//自我调用的函数
(function() {
  console.log('This function is self-invoked.');
})();

函数参数

函数参数是指在函数定义中放置的变量。它们允许在函数内部使用外部或传递给函数的值。在JavaScript中,函数可以接受任意数量的参数。例如:

function addValues() {
  let sum = 0;
  for (let i = 0; i < arguments.length; i++) {
    sum += arguments[i];
  }
  return sum;
}

addValues(1, 2, 3, 4, 5); // 15

在上面的例子中,arguments是一个特殊的关键字,它包含所有传递给函数的参数。该函数接受任意数量的参数,并返回它们的总和。

可以使用ES6提供的剩余参数(rest parameters)语法来简化上面的例子:

function addValues(...values) {
  let sum = 0;
  for (let value of values) {
    sum += value;
  }
  return sum;
}

addValues(1, 2, 3, 4, 5); // 15

上面的代码使用了剩余参数语法,它把传递给函数的所有值打包进一个数组中。

函数返回值

函数可以使用return语句返回一个值。这个值可以是任何类型的,包括对象和函数。如果没有给函数添加return语句,则函数返回undefined值。例如:

function increment(x) {
  return x + 1;
}
 
console.log(increment(5)); // 6

在上面的例子中,increment函数将传递的参数x增加了1并将其返回给调用者。

全局函数

JavaScript中有很多全局函数和全局对象。在调用全局函数时,我们不需要使用前缀或任何其他的名称空间。例如:

console.log('Hello, world!'); // 在控制台中输出“Hello, world!”

在上面的例子中,console.log是一个全局函数,它用于输出严格的控制台消息。我们直接通过log方法来调用它。