📜  js 中的函数 - Javascript (1)

📅  最后修改于: 2023-12-03 15:16:59.862000             🧑  作者: Mango

JS 中的函数

函数是 JavaScript 中最重要的概念之一。函数用于封装一段代码,让它可以被重复执行,同时还可以接收参数和返回值。

函数的定义

JavaScript 中可以通过多种方式来定义函数,最常见的方式是使用函数声明和函数表达式。

函数声明

函数声明使用 function 关键字定义一个函数,语法如下:

function functionName(param1, param2, ...) {
  // 函数体
}

其中,functionName 是函数的名称,param1param2 等是函数的参数列表。函数体是包含在花括号中的一组语句,表示该函数要执行的操作。

例如,下面的函数用于计算两个数字的和:

function add(a, b) {
  return a + b;
}
函数表达式

函数表达式使用 function 关键字将一个函数赋值给一个变量,语法如下:

const functionName = function(param1, param2, ...) {
  // 函数体
};

例如,下面的函数表达式定义了一个函数,用于输出一个字符串到控制台:

const log = function(message) {
  console.log(message);
};
函数的调用

函数定义完成后,可以通过函数名加括号的方式调用函数。例如,下面的代码将调用上文定义的 add 函数,并将结果赋值给变量 sum

const sum = add(1, 2);

函数调用时需要传入相应的参数,参数可以是任何 JavaScript 数据类型。

函数的参数

函数可以使用参数来接收外部传递进来的数据。函数的参数列表包含在括号中,多个参数之间用逗号隔开。

例如,下面的函数接收两个数字参数,并返回它们的和:

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

函数还可以使用默认参数和剩余参数。

默认参数

使用默认参数可以在函数定义时指定参数的默认值。如果函数调用时未传入该参数,则使用默认值。

例如,下面的函数使用默认参数,如果 b 参数未传入,则默认值为 0

function add(a, b = 0) {
  return a + b;
}
剩余参数

使用剩余参数可以将一组参数转换为数组。剩余参数由三个点(...)和参数名称组成。

例如,下面的函数使用剩余参数,将所有的参数转换为数组并返回:

function sum(...nums) {
  return nums.reduce((acc, val) => acc + val, 0);
}
函数的返回值

函数可以使用 return 关键字返回一个值。函数返回值可以是任何 JavaScript 数据类型。

例如,下面的函数返回两个数字的和:

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

函数也可以不返回任何值,这时 return 语句可以省略。

函数的作用域

函数内部定义的变量只有在函数内部可见,因此函数具有作用域。函数作用域可以帮助避免全局变量命名冲突等问题。

例如,下面的函数内部定义了一个变量 message,这个变量只能在函数内部使用:

function showMessage() {
  const message = 'Hello, world!';
  console.log(message);
}
函数的高级用法

JavaScript 中的函数还有许多高级用法,例如闭包、箭头函数、函数柯里化等。这些用法可以让函数变得更加灵活和强大。

闭包

闭包是指一个函数可以访问其定义时的作用域,即使该函数在其他作用域中被调用。

例如,下面的代码定义了一个计数器函数,该函数返回一个内部函数,每次调用内部函数时计数器加一:

function createCounter() {
  let count = 0;
  return function() {
    count++;
    console.log(count);
  };
}

const counter = createCounter();
counter(); // 输出 "1"
counter(); // 输出 "2"
counter(); // 输出 "3"
箭头函数

箭头函数是一种更简洁的函数定义方式,用于定义匿名函数或简化函数定义。

const add = (a, b) => {
  return a + b;
};
函数柯里化

函数柯里化是一种将多参数函数转化为一系列单参数函数的技术。

const add = (a) => {
  return (b) => {
    return a + b;
  };
};

const addTo2 = add(2);
console.log(addTo2(3)); // 输出 5

以上就是一份关于 JS 中的函数的介绍。