📅  最后修改于: 2023-12-03 15:16:59.862000             🧑  作者: Mango
函数是 JavaScript 中最重要的概念之一。函数用于封装一段代码,让它可以被重复执行,同时还可以接收参数和返回值。
JavaScript 中可以通过多种方式来定义函数,最常见的方式是使用函数声明和函数表达式。
函数声明使用 function
关键字定义一个函数,语法如下:
function functionName(param1, param2, ...) {
// 函数体
}
其中,functionName
是函数的名称,param1
、param2
等是函数的参数列表。函数体是包含在花括号中的一组语句,表示该函数要执行的操作。
例如,下面的函数用于计算两个数字的和:
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 中的函数的介绍。